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; }' 太好了,非常感謝! –