0

我有这个身份界面

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 运算符来获得相同的结果。

4

0 回答 0