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"'

(code in playground)