如何影响通过TypeScript

时间:2018-10-11 14:56:19

标签: typescript typescript-typings

我正在为一个名为library的库编写类型定义,该库包含具有方法A的通用接口refine,可以创建一个新的A对象通过调用createA函数。

interface A<T> {
  refine<U extends T>(): A<U>
}

interface CreateA {
  <T extends any>(): A<T>;
}

const createA: CreateA;

我们现在可以创建新的A对象,这些对象受初始createA函数或链接的refine方法的约束。

createA<any>(); // A<any>
createA<any>().refine<number>(); // A<number>

在调用refine方法时,如何使TypeScript引用本身并优化其类型。

const a = createA<any>();
a.refine<number>();

在运行a方法后,我希望A<number>的类型为refine,但目前仍为A<any>类型。

0 个答案:

没有答案