Typescript and React
Referernce: https://hackernoon.com/why-i-no-longer-use-typescript-with-react-and-why-you-shouldnt-either-e744d27452b4
原文标题:Why I no longer use TypeScript with React and why you might want to switch too
这篇文章从几个效益方面讨论了TypeScript与React的问题。
Compile Time Cost
做了编译器的时间Profiling,可以看见Javascript基本是秒开,TS则在各种方面都有着较大的延时。
Type Check and Intellisense
这里说可以通过JSDoc做到一些简单的类型提示。个人认为JS + .d.ts也是不错的选择,将TypeScript的一些Hinting写在外面也是可以的。但是这种情况只针对于库的引入,如果是全局项目的话没有什么可操作性。
"javascript.implicitProjectConfig.checkJs": true
@types带来更多的麻烦
如果需要使用外部库,那么这些库如果没有shipped with typed,那么就要使用第三方的描述文件。
其实从TS2.2开始,可以使用declare var
等语法,或者手动创建.d.ts
在里面declare module
来强制跳过语法检查。
编译时检查 / 编译器检查
使用Babel@7的typescript插件其实也能做静态类型检查。 这样不需要额外的编译过程,直接从babel出结果。
IMO the best way to use TypeScript is to use Babel@7 with typescript plugin, and use the TypeScript type checker (but not compiler) to get type errors via fork-ts-checker-webpack-plugin. I didn’t look at CRA’s implementation, but I expected them to do that. If they don’t, its surprising.