1 回答

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