好吧,一切都很棒,直到我进入空数组的传播,以呈现几个类似的索引可靠组件。
我写了这行代码(像往常一样):
[...Array(3)].map((_, i) => {...}) // return something, you know
或者,相对而言
[...Array(3)].map((_, i) => i)
我期待的是什么以及正常的行为(例如在Chrome的控制台中,或者直到我来到Typescript之前Babel的内容):
[0, 1, 2]
我在React TypeScript应用程序中使用的内容(使用webpack-dev-server
和awesome-typescript-loader
):
[empty x 3]
我走得更深了。我从我的应用程序中记录了[...Array(3)]
,然后在Chrome的控制台中记录。我得到了什么:
[undefined, undefined, undefined] // from Chrome's console
[empty x 3] // from my app
显然,这个烦人的事情不允许我在没有变通方法/第三方的情况下渲染索引可靠的组件。那么,我做错了什么,或者这是一个错误?
部分配置:
{
test: /\.tsx?$/,
loader: "awesome-typescript-loader",
exclude: /node_modules/
},
{
enforce: "pre",
test: /\.js$/,
loader: "source-map-loader"
},
版本:
"awesome-typescript-loader": "^4.0.0",
"typescript": "^3.0.1",
"webpack": "^3.10.0",
"webpack-dev-server": "^2.11.1",
好吧,还有另一个名为downlevelIteration
的编译器选项。一切都很好
"downlevelIteration": true
如果你想传播HTMLCollection
或类似的东西(例如NodeList
),你应该将dom.iterable
包括在lib
选项中,例如:
"lib": ["es6", "dom", "dom.iterable"]