1 回答

TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊
最近在公司正在用 Spacemacs + TypeScript 寫 React Native。總體來講依靠各種補(bǔ)全和糾錯,效率還是比不用
TypeScript 高的。不過 DefinitelyTyped 的 react-native.d.ts 一定是不夠新的, 比如想用 React
Native 0.21 剛出的 NavigatorExperimental 的話就得自己寫 type definition。好在
TypeScript 1.8 允許我們擴(kuò)展別人的 module definition,一部分的類型還是可以自己修補(bǔ)修補(bǔ)的。很多 React
Native 的 third party library 都是沒人寫過 type definition 的,那也得自己寫。
TypeScript 的編譯速度還不錯,tsc + babel 雙層編譯下 live reload 的速度還是可以接受的。
一個問題是 React Native packager 不直接支持 third party 的 source map,這意味著 backtrace 對應(yīng)的是 tsc 編譯好的 ES6 文件,debug 起來不夠方便。
TypeScript 不知道 React Native 里面是用 require 來引用圖片資源的,這個也有點 hacky。
說一個跟 React Native 無關(guān)的:TypeScript 非常依賴于 type annotation,幾乎沒有 bidirectional typechecking,更不用說 whole program type inference 了。相比之下 flow 的 inference 還是要強(qiáng)大一些。當(dāng)然了,JS 里面各種 implicit union type 還有 subtyping,我想也是沒辦法 infer 的。
- 1 回答
- 0 關(guān)注
- 1197 瀏覽
添加回答
舉報