Javascript 关于Typescript'功能的澄清;s目标和库设置
当tsconfig.json具有以下内容时Javascript 关于Typescript'功能的澄清;s目标和库设置,javascript,typescript,ecmascript-5,ecmascript-2017,Javascript,Typescript,Ecmascript 5,Ecmascript 2017,当tsconfig.json具有以下内容时 "target": "es5", "lib": [ "es6", "dom", "es2017" ] 它似乎没有将es2017构造转换为es5。例如,在IE11上以下操作将失败: var foo = [1, 2, 3].includes(1); 这是出于设计还是缺少tsconfig.json中的设置?您可以在此处查看includes方法的列表浏览器兼容性 在这方面,它不支持IE 关于Typescript目标和库设置功能的说明 我认为它的简化方式
"target": "es5",
"lib": [ "es6", "dom", "es2017" ]
它似乎没有将es2017构造转换为es5。例如,在IE11上以下操作将失败:
var foo = [1, 2, 3].includes(1);
这是出于设计还是缺少tsconfig.json中的设置?您可以在此处查看includes方法的列表浏览器兼容性 在这方面,它不支持IE 关于Typescript目标和库设置功能的说明 我认为它的简化方式是,
target
说明输出JavaScript将具有的语法,lib
说明API成员可以使用的类型脚本源代码。这两个问题的答案更为详细:
目标
语法;它不会多填充目标
中缺少的API成员。来自TypeScript团队的核心成员:
我想你把透明和自动填充混淆了。TypeScript不会像Babel那样为您自动填充多边形,但会执行语法向下调整(例如,对于箭头函数)。如果您想使用ES6运行时原型方法,我只需要包含一个适当的ES6 polyfill及其附带的定义文件
如果
lib
包含target
运行时中不存在的API成员(如Array.prototype.include
),则需要安装提供这些API成员的polyfills。明白。我的问题是Typescript是否会自动将.includes(或其他ES2017语句)转换为es5。这让我感到困惑。箭头函数等功能会被转换,但来自同一规范的其他功能不会被转换。