繁体   English   中英

在TypeScript中自动推断来自重写接口的类型

[英]Automatically inferring types from overridden interfaces in TypeScript

我正在尝试为已经存在的模块创建一些TypeScript定义。 在要实现的特定接口中,签名如下所示:

type NextFunction<T> = () => T;
type Response = string[] | Promise<string[]>;

interface IPage {
  getBodyClasses(next: NextFunction<Response>): Response;
}

参数和返回结构是固定的,我真的希望能够让TypeScript推断我的重写方法的参数类型是什么。 但是,当我创建覆盖时,我看到该参数隐式具有any类型。

class Page implements IPage {
  getBodyClasses(next) {
    return next();
  }
}

有没有办法将getBodyClasses标记为专用覆盖,以便自动推断参数的类型? 如果我输入next作为number ,那么就已经说过Page正在不正确地实现接口,所以我不太明白为什么它也不能推断出next的类型和接口的类型相同。

不支持已实现属性的上下文类型。

更多

跟踪此问题的主要问题是https://github.com/Microsoft/TypeScript/issues/1373

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM