我试图理解Typescript编译器何时会转换代码以使其与我指定的ECMAScript版本(ES5或ES3)兼容。
例如,TSC可以很好地转换
我可以期望什么会被转换和什么不会被转换?我最初期望所有内容都将被转换,以便我不必跟踪这类事情,但似乎并非如此。
例如,TSC可以很好地转换
for(var int of intArray)
,但它不会转换Number.isInteger()
(根据w3schools,这是一个ES6特性)。
Number.isInteger()
在IE<11.0中不受支持,所以这是一个问题。Visual Studio(和VS Code)没有提供不兼容警告,并且它不被转换。我可以期望什么会被转换和什么不会被转换?我最初期望所有内容都将被转换,以便我不必跟踪这类事情,但似乎并非如此。
Promise<T>
类型。也就是说,它假设你已经输入了一个polyfill。虽然Number.isInteger
可以轻松地进行polyfill,但是polyfills并不是TS想要做的事情。例如,请参见关于polyfills的此评论。 - Heretic Monkey