我有这个身份界面
export interface Identity {
username: string;
name: string;
surname: string;
roles: string[];
}
我想在运行时获取一个包含所有键的字符串数组。
const keys: string[] = ["username", "name", "surname", "roles"];
如果它是一个类,那么使用构造函数会很容易(如此处所建议的)。
class Identity {
constructor(
readonly username?: string,
readonly name?: string,
readonly surname?: string,
readonly roles?: string[]
) {}
}
const properties: string[] = Object.keys(new Identity());
我发现了其他类似的问题,一些关于Keyof Type Operator的问题,最相关的是:
然而,在上述问题中,keyof 的结果仅用作类型/值约束。如何使用 keyof 运算符将键作为字符串数组获取呢?从接口定义或类也是不可能的吗?
TypeScript 自定义转换器
这个项目,一个自定义转换器,完全符合我的要求:获取给定类型的键。
我想知道是否有更简单的方法,可能只使用 keyof 运算符来获得相同的结果。