如何评价 TypeScript 1.7
发布网友
发布时间:2022-04-20 04:21
我来回答
共1个回答
热心网友
时间:2022-04-19 23:09
async/await会编译成yield/generator加一个__awaiter函数,这个__awaiter函数和co原理是一样的,这种方式在目前支持yield/generator的JS环境下是最合适的async/await实现了,如果以ES5为编译目标,生成的代码量会巨大,而且对人完全是不可读的。所以我个人不倾向于在ES5环境当中使用async/await。
编译目标设置为ES6的时候,可以使用ES6的mole/import语法,对于以export default的模块,个人认为用起来会显得不太方便,并且还有一个小小的bug,这里就先不详细描述了。不论怎样,拥抱ES6肯定是趋势。
一个不知道是不是1.7才引入的问题:以ES6为编译目标时,某些d.ts会用不了,比如bluebird,因为TS的lib.es6.d.ts里定义了Promise,而bluebird.d.ts也定义了,于是重复定义。当然这种问题可以等第三方库的d.ts更新,或者自己修改一下兼容,不过我目前用的是很猥琐的办法就是自己改了一个lib.es6.d.ts,把里面Promise的定义全删了- -"。
npm install typescript@next的话,可以尝鲜体验到1.8,不过还是有不少BUG。