Typecscript 是否与 IE9 100% 兼容——如果不是,它会在你编码时提示它不能做什么吗?

Is Typecscript 100% compatible with IE9 - if not will it advise what it can't do while you code?

Typescript 是否总是将代码 (ES6->ES5) 转换为适合 IE9 的代码。如果是的话,你能提供证据吗,因为我找不到任何明确地说所有有效的 ES6 代码都将被转换为在 IE9 中工作的东西。 (各种消息来源表明它可以,但不清楚这是一般的事情还是完全是的,它只是有效)

如果不是,是警告还是报错说你不能使用功能X。 例如,我从 Babel 站点 (https://babeljs.io/docs/learn-es2015/ ) 看到它不能转换或 polyfil 代理,所以我猜如果它不能将代理更改为有效的 ES6 之前的代码,那么 Typescript 将具有相同的问题?

再次,如果我查看 https://kangax.github.io/compat-table/es6/ 并说打开“解构,声明”,那么它显示 Babel 有 21/22,而 TS 只有 15/22。这是否意味着 TS 不能像 Babel 那样工作?如果我使用 TS,如果我尝试使用这样的语法,它会警告我吗?

TypeScript 编译器生成的 JavaScript 代码不需要 运行time 库。这是一个设计选择。

在ES6的改进中,有两点:

  1. 新 ES6 语法;
  2. 新 ES6 API.

新的 ES6 语法,如 class、箭头函数、constletfor of 都很好地转换为 ES3,生成的代码将 运行在 IE8 上。

TypeScript 不提供任何 API。一些 ES6 API 可以被填充:PromiseArray.from 等。因此,我们可以将 TypeScript 与 es6-shim 一起使用,例如。

有些 API,例如 Proxy,根本无法填充。

does it warn or give errors to say that you can’t use feature X

是的,但与 ES3 或 ES5 而不是 IE8 或 IE9 相比。

您仍然需要了解您的目标浏览器。