我写的用角2和打字稿的应用程序。我想用一个js方法(特别是“过滤器”的阵列),它支持IE 11+,铬45+等 将我的代码能够在旧的浏览器上运行?当Typescript转换为vanilla js时,我不确定它如何处理ES6功能。Typescript转换是否将ES6转换为ES5?
4
A
回答
9
TypeScript允许您使用来自ES6的新的语言功能,它会将这些语言功能转换为ES5;但是,它不添加内置存在于ES6功能为polyfills,但在ES5不存在。
如果您使用的是内置的,只有在ES6存在,并都瞄准ES5功能,那么你将需要包括为了必要的polyfills为代码在ES5环境中工作。
例
例如,fill
是Array
的原型在ES6发现了一个新的功能。
const result = ["first", "second"].fill("all");
当你瞄准ES6时一切都很好。编译器将包含lib.es6.d.ts,其定义为fill
,不会抱怨,因为它假定您将在存在fill
函数的ES6环境中运行代码。
当你的目标ES5,但是,它不包括lib.es6.d.ts并会告诉你,这个功能并没有在ES5环境中存在:
错误TS2399:房产“填充'在类型'string []'上不存在。
为了解决这个问题,你需要添加fill
到Array<T>
接口的定义文件在您的项目:
interface Array<T> {
fill(value: T, start?: number, end?: number): this;
}
,包括一个polyfill。或者使用自动为你做的事情。
0
是的,它可以的,如果你设置tsconfig.json目标ES5
设置tsconfig.json编译器选项target: "ES5"
或--target ES5
的CLI
至于ES6的内置功能,IDK,但我会将babel-loader添加到webpack,grunt,gulp等,以自动填充这些功能。
相关问题
- 1. Webpack不能将ES6转换成ES5
- 2. 将语句转换为ES5
- 3. 将SCSS编译为CSS并同时将ES6转换为ES5
- 4. 如何转换es5需要es6导入
- 5. 使用属性和方法将getInitialState(ES5)转换为this.state(ES6)
- 6. 如何使用babel以编程方式将es6转换为es5?
- 7. 使用webpack而无需将es6转换为es5代码
- 8. 转换为TypeScript
- 9. 将JavaScript转换为TypeScript
- 10. 将C#转换为TypeScript
- 11. 将ES5 Mixins转换为高阶组件
- 12. 如何使用'间隔'与反应,从ES5转换为ES6
- 13. 将ReactJS代码转换为ES6语法
- 14. 将threejs的IIFE函数转换为es6?
- 15. babel es5 to es6将更少的扩展名转换为导入的css
- 16. JS代码转换为Typescript
- 17. 将角度材质转换为TypeScript
- 18. 将JSON对象转换为Typescript类
- 19. 将我的Angular代码转换为TypeScript
- 20. 如何ES5转换器ES6在终极版的减速
- 21. 通过向上转换将Java.sql.date转换为Java.util.date是否安全?
- 22. 是否有一个“转换器”,将CSS转换为IE兼容?
- 23. 是否可以将NSInteger转换为NSNumber?
- 24. 是否可以将VBA转换为C#?
- 25. 是否将char *转换为int * undefined?
- 26. 是否可以将View转换为ViewGroup?
- 27. 是否可以将byte []转换为bitmapsource?
- 28. 是否可以将MBCS转换为DBCS?
- 29. 将MS Access.adp转换为ASP.Net转换:DLookup转换为SQL
- 30. 将ISML PAC转换为XForm转换
http://www.typescriptlang.org/play/index.html – Sasxa
['Array.filter()'](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux /阵列/过滤器)与IE 9+和所有其他浏览器兼容。它不是用ES6 – nicovank
请注意,这种方法可以通过polyfills加入,也介绍;你不一定需要翻译。 – jonrsharpe