首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript输出仍然使用Array.prototype.reduce,尽管我的目标是ES3

TypeScript输出仍然使用Array.prototype.reduce,尽管我的目标是ES3
EN

Stack Overflow用户
提问于 2014-10-16 15:33:16
回答 1查看 332关注 0票数 2

我和TypeScript玩了一会儿,发现了一点奇怪的地方。假设我正在构建一个小应用程序(遗憾的是)也需要支持IE8。因此,我将类型转换-编译器设置为目标ES3。

我以为我可以在我的ECMAScript文件中安全地使用Array.prototype.reduceArray.prototype.reduce 5.1的好东西,而TypeScript会为它提供某种类型的填充。然而,情况似乎并非如此:

代码语言:javascript
复制
function joinStuff (stuff : string[], joiner : string = ' ') {
    return stuff.reduce((previous, current) => 
        previous ? previous + joiner + current : current
    ) || '';
}

将被编译成:

代码语言:javascript
复制
function joinStuff(stuff, joiner) {
    if (joiner === void 0) { joiner = ' '; }
    return stuff.reduce(function (previous, current) {
        return previous ? previous + joiner + current : current;
    }) || '';
}

现在这是而不是 ECMAScript 3兼容的代码!(当然,它不会在IE8中运行)。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-16 15:35:10

TypeScript不会为您提供任何API。为此目的,有许多现成的多填充库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26408343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档