Javascript 使用TypeScript泛型定义工厂方法的返回类型
本质上,我希望能够使用构造函数调用泛型TypeScript函数,并返回构造函数乘积类型的正确类型变量。请参见下面的代码示例。Final console.log有类型错误Javascript 使用TypeScript泛型定义工厂方法的返回类型,javascript,typescript,Javascript,Typescript,本质上,我希望能够使用构造函数调用泛型TypeScript函数,并返回构造函数乘积类型的正确类型变量。请参见下面的代码示例。Final console.log有类型错误 class TestType { constructor( public someVal: number ) {} } type GenericConstructor = new (...args: any) => any; let map = new Map<GenericConstructor
class TestType {
constructor(
public someVal: number
) {}
}
type GenericConstructor = new (...args: any) => any;
let map = new Map<GenericConstructor, any>();
map.set(TestType, new TestType(7));
console.log(map.get(TestType).someVal);
function retrieve<T extends GenericConstructor>(constructor: T): T {
return map.get(constructor);
}
let retrieved = retrieve(TestType);
console.log(`retrieved: ${retrieved.someVal}`);
如果没有第二个类型参数,这是否可能?InstanceType是您需要的:
function retrieve<T extends GenericConstructor>(constructor: T): InstanceType<T> {
return map.get(constructor);
}
正是我要找的!我知道它的某个地方一定有语言功能,谢谢。为了子孙后代。
function retrieve<T extends GenericConstructor>(constructor: T): InstanceType<T> {
return map.get(constructor);
}