javascript - TS 2411 - 获取类型 'propertyName' 的错误属性 'string' 不可分配给字符串索引类型

标签 javascript typescript

我正在 Typescript 中创建一个类型对象并遇到以下错误。

“string”类型的属性“template”不能分配给字符串索引类型“{ data: object;”改变的属性:对象; }

type Records = {
 template: string;
 id: string;
 [usernmae: string]: {
   data: object;
   changedProperties: object;
 }
}

请指导我如何修改对象以便正常工作。

最佳答案

如果您使用与索引键类型相同的属性, typescript 将无法区分它们。

例如,您可以更深入一层并在那里使用索引:

  type Records = {
     template: string;
     id: string;
     usernames: { [usernmae: string]: {
       data: object;
       changedProperties: object;
       }
     }
  }

关于javascript - TS 2411 - 获取类型 'propertyName' 的错误属性 'string' 不可分配给字符串索引类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64313465/

相关文章:

javascript - 离线缓存 - html5

javascript - 使用异步数据调用值的 Google Chart DataView 计算列

visual-studio - 我可以使用 Visual Studio Community 2015 通过 TypeScript 进行开发吗?

angular - typescript 用数组传播深拷贝

c# - 在 C# 中以编程方式编译 typescript ?

javascript - 使管道的转换方法中的返回语句通用

javascript - 如何为 node.js 控制台获取更多颜色

javascript - 使用 Javascript 将 24 小时时间转换为 12 小时时间 w/AM & PM

node.js - 如果存在 "declaration merging"x");",则 Typescript "import x = require("不起作用

javascript - 使用 TypeScript super()