...记录在哪里?

我在这里见过这样的例子:

class MyThing {
  private _layers: { [id: string] : SimpleLayer } = {};
  ...
}

...这很有效,这很好,但语法让我困惑.

什么是"id"?为什么语法不仅仅是blah:{string:SimpleLayer},这是doesnt work.我还看到了{[name:string]:Type}和{[index:string]:Type}.

我一直在看 typewriter .org试图找到这些文件的实际位置,但我似乎根本找不到.

推荐答案

TypeScript Walkthrough: Interfaces

请参阅"描述可转位对象"一节.这叫做index signature.

定义索引的语法如下:

[Identifier: KeyType]: ValueType

KeyType可以是stringnumber.

你可以说Identifier并不是真正需要的,因为它在任何地方都不会被使用,但我认为它是必需的,以便迫使类/接口设计器指示哈希映射键应该代表什么(id、名称、邮箱地址等).这还提供了让intellisense显示哈希键名称的可能性(就像Visual Studio对其他语言所做的那样),尽管我认为Typescript intellisense目前没有提供这种功能.

Typescript相关问答推荐

接口DOMRouter选项未输出

使Typescribe强制所有对象具有相同的 struct ,从两个选项

打印脚本丢失函数的泛型上下文

如何推断计算逻辑的类型

如何以Angular 形式显示验证错误消息

分解对象时出现打字错误

如何在NX工作区项目.json中设置类似angular.json的两个项目构建配置?

Vue3 Uncaught SyntaxError:每当我重新加载页面时,浏览器控制台中会出现无效或意外的令牌

基于泛型的条件接口键

在Cypress中,您能找到表格中具有特定文本的第一行吗?

创建一个TypeScrip对象并基于来自输入对象的约束定义其类型

在Reaction中折叠手风琴

Rxjs将省略的可观测对象合并到一个数组中

如何使用angular15取消选中位于其他组件中的复选框

如何处理可能为空的变量...我知道这不是Null?

Route.ts文件中未导出HTTP方法

如何使用IsEqual创建断言类型相等的实用程序

组件使用forwardRef类型脚本时传递props

无法使用prisma中的事务更新记录

断言同级为true或抛出错误的Typescript函数