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

时间:2017-06-16 18:50:40

标签: javascript typescript types

我正在尝试为已经存在的模块创建一些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标记为专用覆盖,以便自动推断参数类型?如果我将Page键入为next,我们会说number不正确地实现了界面,所以我不太明白为什么它也不能推断next的类型1}}与接口的相同。

1 个答案:

答案 0 :(得分:1)

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

更多

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