请问tsc如何使用polyfill兼容?

我在文档看到,tsc要兼容的话主要是两个参数:
target:处理一些需要兼容的语法。
lib:实现polyfill去处理一些需要兼容的api的效果?但是这个没有效果...

然后又了解到:

  • TypeScript doesn't polyfill.
  • Use corejs to polyfill

如果是这样的话是不是lib这个参数其实不会处理api,需要再加额外的配置去处理?第一次弄这一块,有没有大佬能解答一下?

阅读 3.8k
2 个回答

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。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题