首页 > 解决方案 > 如何影响通过 TypeScript 中的方法调用细化的泛型类类型

问题描述

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

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>

如何使 TypeScript 引用自身并在refine调用方法时优化它的类型。

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

我想在运行该方法后a成为 type ,但它目前仍然是 type 。A<number>refineA<any>

标签: typescripttypescript-typings

解决方案


推荐阅读