gpt4 book ai didi

typescript - 为什么我不能在与其他键的接口(interface)中使用枚举作为键

转载 作者:行者123 更新时间:2023-12-04 13:57:04 25 4
gpt4 key购买 nike

我通过其他问题发现了如何使其工作,但我找不到原因。

我有一个 enum我想在界面中用作对象键:

export enum actions {
insert = 'insert',
merge = 'merge',
assign = 'assign',
}

我的这个配置界面工作:
interface Config {
calls: {
reads: storeName[]
writes: storeName[]
} & {
[action in actions]?: storeName[]
}
}

但这不起作用:
interface Config {
calls: {
reads: storeName[]
writes: storeName[]
[action in actions]?: storeName[]
}
}

它给出了错误:

A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.ts(1170) A computed property name must be of type 'string', 'number', 'symbol', or 'any'.



任何人都可以帮助我理解为什么会发生这种情况。

最佳答案

基本上:

  • { reads: storeName[], writes: storeName[] }是正常的 interface type ,
  • { [action in actions]?: storeName[] }mapped type ,

  • 你不能写出两者兼而有之的东西;虽然你可以取每一个的交集。

    关于typescript - 为什么我不能在与其他键的接口(interface)中使用枚举作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123487/

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