javascript - 映射类型不能声明属性或方法 - TypeScript

标签 javascript typescript enums

我有一个接口(interface),它应该具有特定枚举键类型的键,但是当我声明该类型时,它会给出此错误:

A mapped type may not declare properties or methods.


这是代码:
enum myEnum {
  propOne = 'propOne',
  propTwo = 'propTwo'
}

export interface myInterface {
  [key in myEnum]: anotherInterface;
}
我也尝试像这样指定类型,但它不起作用并给了我语法错误:
export interface myInterface {
  [key in keyof typeof myEnum]: anotherInterface;
}
我也尝试使用普通对象而不是枚举,但它给出了同样的错误。

最佳答案

您需要使用 Mapped type ,不是接口(interface):

export type MyInterface = {
  [key in myEnum]: AnotherInterface;
}

关于javascript - 映射类型不能声明属性或方法 - TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70652935/

相关文章:

javascript - jQuery 如何在现有类元素中添加另一个值

javascript - 使用 map 或 foreach 进行异步/等待

javascript - 如何使用图像和字符串将数据传递给ajax

angular - Ionic 3 如何确保在加载 View 之前获取数据库数据

ios - 实例成员不能用于类型 - 错误

C++ 枚举问题和 g++ 中可能的循环依赖

javascript - 在 Node.js 中实现通知队列

javascript - typescript 如何将新项目添加到空对象数组

typescript - 如何在 Typescript 中使用泛型多态性?

python - 在 Go 中枚举常量的最佳方法