我在文档看到,tsc
要兼容的话主要是两个参数:
target:处理一些需要兼容的语法。
lib:实现polyfill
去处理一些需要兼容的api的效果?但是这个没有效果...
然后又了解到:
- TypeScript doesn't polyfill.
- Use corejs to polyfill
如果是这样的话是不是lib
这个参数其实不会处理api
,需要再加额外的配置去处理?第一次弄这一块,有没有大佬能解答一下?
我在文档看到,tsc
要兼容的话主要是两个参数:
target:处理一些需要兼容的语法。
lib:实现polyfill
去处理一些需要兼容的api的效果?但是这个没有效果...
然后又了解到:
- TypeScript doesn't polyfill.
- Use corejs to polyfill
如果是这样的话是不是lib
这个参数其实不会处理api
,需要再加额外的配置去处理?第一次弄这一块,有没有大佬能解答一下?
target
控制的只是转译语法。
const/let 变 var;箭头函数变 function;async+await 变 Promise.then;展开运算符变点取值…… 这些是语法。
但它不会引入内置对象的扩展。比如你要运行的浏览器不支持 Promise、不支持 String.prototype.matchAll,那 tsc 构建之后也不会带一个完整的 Promise polyfill 出来、还是不会支持 String.prototype.matchAll。
lib
控制的是全局引入哪些 .d.ts
声明文件;.d.ts
跟 polyfill 就更没有关系了。
想 polyfill 一般还是配合 @babel/ployfill。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
参考了这两篇文章:
没有集成
webpack
,配置和上面说的差不多,列几个对我来说比较重要的点吧:@babel/plugin-transform-runtime
按需引入。捣鼓了这么久勉强可以用了...