awesome-typescript-loader:空数组的传播 returns 空数组
awesome-typescript-loader: spread of empty array returns empty array
好吧,一切都很棒,直到我开始展开空数组以呈现几个类似的依赖于索引的组件。
我写了这行代码(像往常一样):
[...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
显然,这个烦人的事情不允许我在没有 workarounds/third-parties 的情况下渲染索引依赖组件。
那么,我是做错了什么,还是这是一个错误?
部分配置:
{
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"]
好吧,一切都很棒,直到我开始展开空数组以呈现几个类似的依赖于索引的组件。
我写了这行代码(像往常一样):
[...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
显然,这个烦人的事情不允许我在没有 workarounds/third-parties 的情况下渲染索引依赖组件。 那么,我是做错了什么,还是这是一个错误?
部分配置:
{
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"]