gpt4 book ai didi

typescript - 为什么 `downlevelIteration` 默认不开启?

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:17 26 4
gpt4 key购买 nike

当针对 ES5 使用扩展运算符 ...Iterator 转换为 Array 时,它显示使用 -downlevelIteration 编译器选项。一旦打开,传播运算符似乎就可以完美地工作。

我想知道为什么需要指定这个?除了从 tslib 添加更多发出的生成代码之外,启用它时是否有任何缺点/限制?

另一个例子:动态创建 N 的数组(例如 3):

[...Array(3).keys()]  // output: [0, 1, 2]

它在 VS Code 中显示错误:
enter image description here

来自 tsc 的错误信息:

Type 'IterableIterator' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.

Edit and view the code and error in TypeScript Playground

最佳答案

看完release notes和文章Downlevel Iteration for ES3/ES5 in TypeScript ,我相信这个问题的答案是 downlevelIteration 被禁用,因为你需要决定(通过配置)你希望 TypeScript 如何处理兼容性代码的编译(以支持旧版本的 Javascript)。

正如文章中更冗长的解释所表明的那样,您必须决定是否希望 TypeScript 内联必要的辅助函数(简单,但会导致更大的生产包大小),或者您是否希望配置 TypeScript使用 tslib作为依赖项,然后调用其外部方法。

我强烈推荐阅读 Downlevel Iteration for ES3/ES5 in TypeScript以获得更深入的了解……并可能为您最初的问题提供替代解决方案。

关于typescript - 为什么 `downlevelIteration` 默认不开启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com