Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于Typescript'功能的澄清;s目标和库设置_Javascript_Typescript_Ecmascript 5_Ecmascript 2017 - Fatal编程技术网

Javascript 关于Typescript'功能的澄清;s目标和库设置

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目标和库设置功能的说明 我认为它的简化方式

当tsconfig.json具有以下内容时

"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成员可以使用的类型脚本源代码。这两个问题的答案更为详细:

…它似乎没有将es2017构造转换为es5。。。这是出于设计还是缺少tsconfig.json中的设置

你说得对。这是故意的。TypeScript传输到
目标
语法;它不会多填充
目标
中缺少的API成员。来自TypeScript团队的核心成员:

我想你把透明和自动填充混淆了。TypeScript不会像Babel那样为您自动填充多边形,但会执行语法向下调整(例如,对于箭头函数)。如果您想使用ES6运行时原型方法,我只需要包含一个适当的ES6 polyfill及其附带的定义文件


如果
lib
包含
target
运行时中不存在的API成员(如
Array.prototype.include
),则需要安装提供这些API成员的polyfills。

明白。我的问题是Typescript是否会自动将.includes(或其他ES2017语句)转换为es5。这让我感到困惑。箭头函数等功能会被转换,但来自同一规范的其他功能不会被转换。