背景:在入門RN開發的過程當中,發現公司項目代碼中,有的項目是全是.js的後綴文件。有的項目全是ts、tsx、js 文件。心中非常疑惑,因此就寫個文章記錄下本身的解惑的過程。前端
js:是弱類型語言,容易出現一些編譯時不報錯,運行時crash的問題。
ts: 是編譯時語言,一些問題能夠更早的別發現。
es6
JSX
就是Javascript和XML結合的一種格式。React發明了JSX,利用HTML語法來建立虛擬DOM。當遇到<,JSX就當HTML解析,遇到{就當JavaScript解析。JSX 只是爲 React.createElement(component, props, …children) 方法提供的語法糖。React 自創了JSX語法,是一個 JavaScript 的語法擴展,官方建議在 React 中配合使用 JSX 來替代原始的 JS。由於JSX 能夠更好的描述 UI 應該呈現出它應有交互的本質形式。JSX 看起來有點相似模版語言,但它具備 JavaScript 的所有功能。json
.js和.jsx的區別
我如今理解的區別就是後端
.js能夠用來作爲模塊來使用瀏覽器
.jsx通常做爲組件來使用,可是js也能夠用來做爲組件使用也是沒問題的安全
.js就是前端開發語言,jsx是React框架下用的,要在React框架中的編譯器編譯成js語言才能使用的架構
TypeScript
你用 TypeScript 語法寫的 .ts .tsx 等後綴的程序是不能直接運行的,而是會被 tsconfig.json 配置中的 「target」: 「es6」, 這項配置轉換爲 es6 語法的 .js 文件。
TypeScript 中的 import 只會加載 .ts .tsx 後綴的文件,而 Javascript 中的 import 只能加載 .js 等後綴的文件
框架
TypeScript的優點ide
-
規避靜態類型出錯:TS經過靜態類型檢查,能把錯誤從運行時提早至編譯時,避免了一些基本bug。函數
-
應對接口改變 快速準確
假如後端改變了一些接口字段,能夠經過直接改變編譯出錯的地方,快速替換。而不須要一個一個字段地尋找。
公司如今的前端項目大概有十幾萬行代碼,各類從後端拿到的數據類型有上百種之前後端接口一改,要改字段,瞬間懵逼。全局搜索,一個個改,各類牽扯到的東西改下來再測試一頓估計小半天沒了。用了 TypeScript 以後,把數據對應的 interface 改掉,而後從新編譯一次,把編譯失敗的地方所有改掉就行了。並且在優秀的 TypeScript 架構中,業務開發基本不須要寫類型,全部外部輸入的類型均可以自動拿到,只須要把一些 local variable 和 output 的類型定義一下就行了,基本跟手寫 ES 6 沒有區別。寫代碼的過程當中各類錯誤在越早期修改的成本就越低。試想沒有靜態檢查跑一遍代碼進某個奇怪的 case 才能復現的錯誤在寫代碼時期就直接給你的個錯誤提示,將是多麼省時省力省錢。 做者:SunnyEver0 連接:https://www.jianshu.com/p/f7a0a9f11317TypeScript
ts js 區別
TypeScript 和 JavaScript 是目前項目開發中較爲流行的兩種腳本語言。
JavaScript 是輕量級的解釋性腳本語言,可嵌入到 HTML 頁面中,在瀏覽器端執行。而TypeScript 是JavaScript 的超集,即包含JavaScript 的全部元素,能運行JavaScript 的代碼,並擴展了JavaScript 的語法。相比於JavaScript ,它還增長了靜態類型、類、模塊、接口和類型註解方面的功能,更易於大項目的開發。
通過查閱資料,TypeScript 相比於JavaScript 的優點總結爲如下幾點:
1.便於開發人員作註釋。
2.能幫助開發人員檢測出錯誤並修改。
3.TypeScript工具使重構更變的容易、快捷。
4.TypeScript 引入了 JavaScript 中沒有的「類」概念。
5.TypeScript 中引入了模塊的概念,能夠把聲明、數據、函數和類封裝在模塊中。
6.。類型安全功能能在編碼期間檢測錯誤,這爲開發人員建立了一個更高效的編碼和調試過
後續慢慢理解再補充。。。
如今RN工程中都改爲ts、tsx了。
注意L:建議ts項目採用團隊統一的tslint