【发布时间】:2018-06-24 08:10:41
【问题描述】:
我想做:
let server = {}
for(var i = 0; i < 20; i++) {
server[i] = 'none';
}
但我收到这个烦人的错误,说我的元素隐含地具有“任何”类型,因为类型“{}”没有索引签名。我的代码有效,但我得到了所有这些错误。有没有办法通过传递编译器标志或使元素显式来使用 gulp 禁用它们?
【问题讨论】:
-
看起来你实际上是在创建一个数组,在这种情况下为什么不使用
new Array(20)?或者只定义索引签名{ [index: number]: string }。你可以关闭 noimplicit any 检查,但如果你要使用 TypeScript,你不妨正确使用它。 -
当我做 index:numer 的事情时,我得到 3 个语法错误和大约 50 个语义错误,代码比我上面的例子长一点
-
@jonrsharpe 那是一个数组吗?您可以完美地将数字插入到对象中
-
没有minimal reproducible example,这就是我所能提供的。
-
@Andrew 是的,数组基本上只是一个键是数字的对象。但从语义上讲,OP 正在构建的内容似乎更像数组而不是对象,那么为什么不使用类型系统来加强这一点呢?
标签: windows typescript