TypeScript - 使用 keyof 关键字进行类型推断
TypeScript - Type Inference with keyof keyword
我有一个摘要class
export abstract class ABaseModel {
public static isKeyOf<T>(propName: (keyof T)): string {
return propName;
}
}
还有一个扩展它的 class
export class Model extends ABaseModel {
public id: number;
public uid: string;
public createdByUid: string;
}
要检查字符串是否是 class 的有效 属性,我必须写
Model.isKeyOf<Model>('id');
但是我想写
Model.isKeyOf('id');
类型推断不能实现吗?
这似乎有效:
abstract class ABaseModel {
public static isKeyOf<T>(this: { new(): T }, propName: (keyof T)): string {
return propName;
}
}
Model.isKeyOf("id"); // ok
Model.isKeyOf("name"); // error: Argument of type '"name"' is not assignable to parameter of type '"id" | "uid" | "createdByUid"'
我有一个摘要class
export abstract class ABaseModel {
public static isKeyOf<T>(propName: (keyof T)): string {
return propName;
}
}
还有一个扩展它的 class
export class Model extends ABaseModel {
public id: number;
public uid: string;
public createdByUid: string;
}
要检查字符串是否是 class 的有效 属性,我必须写
Model.isKeyOf<Model>('id');
但是我想写
Model.isKeyOf('id');
类型推断不能实现吗?
这似乎有效:
abstract class ABaseModel {
public static isKeyOf<T>(this: { new(): T }, propName: (keyof T)): string {
return propName;
}
}
Model.isKeyOf("id"); // ok
Model.isKeyOf("name"); // error: Argument of type '"name"' is not assignable to parameter of type '"id" | "uid" | "createdByUid"'