typescript - TypeScript 是否允许将枚举分配给接口(interface)的对象键?

标签 typescript enums


我想知道是否可以将 enum 作为键分配给接口(interface)中的对象?

我写了下面的代码片段来测试是否可行。

    export enum colorsEnum{
    red,blue,green
    }
    
    export interface colorsInterface{
    [colorsEnum.red]:boolean,
    [colorsEnum.blue]:boolean,
    [colorsEnum.green]:boolean
    }

但是,当我运行代码片段时,出现错误并打印以下消息:

接口(interface)中的计算属性名称必须直接引用内置符号。

我做错了,还是根本不可能?


最佳答案

你可以尝试输入:

export enum colorsEnum{
    red, blue, green
}

export type colorsInterface = {
    [key in colorsEnum]: boolean;
};

let example: colorsInterface = {
    [colorsEnum.red]: true,
    [colorsEnum.blue]: false,
    [colorsEnum.green]: true
};

或者如果您不想使用所有键:添加一个 ?

export type colorsInterface = {
    [key in colorsEnum]?: boolean;
};

let example: colorsInterface = {
    [colorsEnum.red]: true,
    [colorsEnum.blue]: false
};

关于typescript - TypeScript 是否允许将枚举分配给接口(interface)的对象键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701524/

相关文章:

typescript - 如何区分具有泛型的联合?

TypeScript 自定义事件监听器

javascript - Angular2 无法映射单个 JSON 对象?

rust - Rust 中类似 Java 枚举的行为

枚举的初始化可以自动化吗?

javascript - Typescript 中的私有(private)继承等价物(仅包括或排除特定的类成员或属性)

javascript - 类型 'authorization' 上不存在属性 'Request'

enums - 如何在 Rust 中参数化枚举器?

C# 枚举返回带中断的字符串

delphi - 使用 Delphi 中的枚举参数调用 DLL 中的 C 函数