我有一个类定义,它在建构式上输入了自变量。我想在别处重用自变量型别定义而不重构或从类中提取定义。我怎样才能做到这一点。下面是一个GetProps<TBase>
我被建议但实际上不起作用的型别的例子。我希望const bp
定义会抛出错误,因为它缺少derp
在建构式中定义的栏位。
type GetProps<TBase> = TBase extends new (props: infer P) => any ? P : never
class Bro {
bro: string = 'cool'
cool: string = 'lol'
constructor(props: {bro: string, cool: string, derp: string}){
this.bro = props.bro;
this.cool = props.cool;
}
}
const bp : GetProps<Bro> = {
bro: 'lol',
cool: 'wut'
};
uj5u.com热心网友回复:
TypeScript 为此包含一个实用程序型别: ConstructorParameters<Type>
TS游乐场
const bp: ConstructorParameters<typeof Bro>[0] = {
/* ^^
Property 'derp' is missing in type '{ bro: string; cool: string; }'
but required in type '{ bro: string; cool: string; derp: string; }'.(2741) */
bro: 'lol',
cool: 'wut'
};
0 评论