0
我有一个抽象类打字稿 - 类型推理与keyof关键字
export abstract class ABaseModel {
public static isKeyOf<T>(propName: (keyof T)): string {
return propName;
}
}
和延伸它
export class Model extends ABaseModel {
public id: number;
public uid: string;
public createdByUid: string;
}
要检查一个字符串是否是这个类的一个有效的财产另一个类,我有到WIRTE
Model.isKeyOf<Model>('id');
但我想写
Model.isKeyOf('id');
类型推断不可能吗?
四处错误:类型typeof运算模式“的“这个”背景下是不能分配给“这”类型的方法的“新的() =>模型'。 –
你的'Model'类的签名是什么?它应该是相同的,例如,如果它是'class Model {constructor(a:string,b:number){...}}'那么你应该使用:'(this:{new(a:string,b:number ):T】' –
构造函数是 '构造(道具:任何[]){ 超(); Object.assign(这一点,道具); }' 所以它的工作原理与 '公共静态isKeyOf(this:{new({}):T},propName:(keyofT)):string { return propName; }' 太好了,非常感谢! –