【问题标题】:awesome-typescript-loader: spread of empty array returns empty arrayawesome-typescript-loader:空数组的传播返回空数组
【发布时间】:2019-02-03 00:13:28
【问题描述】:

嗯,一切都很棒,直到我开始传播空数组以呈现几个类似的依赖索引的组件。

我写了这行代码(和往常一样):

[...Array(3)].map((_, i) => {...}) // return something, you know

或者,相对而言

[...Array(3)].map((_, i) => i)

我期待什么以及正常行为是什么(例如在 Chrome 的控制台中,或者在我来到 Typescript 之前 Babel 做了什么):

[0, 1, 2]

我在我的 React TypeScript 应用程序中得到了什么(使用 webpack-dev-serverawesome-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",

【问题讨论】:

    标签: reactjs typescript webpack webpack-dev-server spread-syntax


    【解决方案1】:

    嗯,还有另一个名为downlevelIteration 的编译器选项。当

    "downlevelIteration": true
    

    补充:

    如果你想传播HTMLCollection或类似的东西(例如NodeList),你应该在lib选项中包含dom.iterable,例如:

    "lib": ["es6", "dom", "dom.iterable"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2017-02-27
      相关资源
      最近更新 更多