Ast*_*One 10 typescript ecmascript-6 es6-shim
我在TypeScript中有以下代码:
export class Config
{
private options = new Map<string, string>();
constructor() {
}
public getOption(name: string): string {
return this.options[name]; // <-- This line causes the error.
}
}
Run Code Online (Sandbox Code Playgroud)
编译器给了我这个错误:
Error:(10, 16) TS7017: Index signature of object type implicitly has an 'any' type.
通过es6-shim可以"映射"地图.我不太清楚这里发生了什么.实际上这张地图让我有些困惑.Map应该来自es6-shim,它应该实现es6功能.但是es6没有静态类型,对吧?那么,为什么Map期望键/值类型作为泛型参数?我看到有些人添加'noImplicitAny'标志,但我想解决问题,而不是忽略它.
谢谢.
C S*_*ver 16
从ES6 Map对象检索键是通过该Map.prototype.get方法完成的,而不是使用数组运算符.
因为JavaScript中的所有对象都是动态的并且可以添加属性,所以仍然可以将数组访问运算符与Map对象一起使用,但这是错误的 - 您实际上并没有使用Map功能,而只是添加任意实例的属性.你可以使用{}而不是new Map()在那一点上.TypeScript编译器试图通过警告您尝试使用不存在的索引签名来告诉您.
| 归档时间: |
|
| 查看次数: |
4812 次 |
| 最近记录: |