gpt4 book ai didi

TypeScript - 使用 keyof 关键字进行类型推断

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:47 29 4
gpt4 key购买 nike

我有一个抽象类

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;
}

要检查字符串是否是该类的有效属性,我必须编写

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 )

关于TypeScript - 使用 keyof 关键字进行类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003970/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com