使用Visual Studio Code和typescript 開(kāi)發(fā)調(diào)試React Native項(xiàng)目

關(guān)于React Native的詳細(xì)介紹我就不敘述了蚜锨,他是使用js構(gòu)建原生app的開(kāi)發(fā)框架。一次變編碼多平臺(tái)運(yùn)行,非常強(qiáng)大债查。但是個(gè)人不喜歡js的過(guò)于靈活(弱類(lèi)型)的語(yǔ)法。強(qiáng)大的強(qiáng)類(lèi)型語(yǔ)言Typescript(簡(jiǎn)稱(chēng)TS)是我的首選瓜挽,他可以編譯成JavaScript盹廷,編譯成的JavaScript代碼可讀性很好,但是這不是關(guān)鍵久橙,關(guān)鍵是TS開(kāi)發(fā)和調(diào)試效率極高俄占。

但是React Native官方是使用js的開(kāi)發(fā)的,如果如果使用TS開(kāi)發(fā)React Native的關(guān)鍵是transformer管怠。

eact-native結(jié)合的關(guān)鍵是使用轉(zhuǎn)換器

初始化項(xiàng)目

react-native init YahuiApp

cd YahuiApp

yarn add --dev react-native-typescript-transformer typescript @types/react @types/react-native

用vscode打開(kāi) 添加配置文件

配置Typescript

新建文件?tsconfig.json內(nèi)容為

{"compilerOptions": {"module":"es2015","target":"es2015","moduleResolution":"node","jsx":"react-native","noImplicitAny":true,"experimentalDecorators":true,"preserveConstEnums":true,"sourceMap":true,"watch":true,"allowSyntheticDefaultImports":true},"filesGlob": ["src/**/*.ts","src/**/*.tsx"],"exclude": ["index.android.js","index.ios.js","build","node_modules"]}

新建文件?tslint.json?內(nèi)容為

{"rules": {"class-name":false,"comment-format": [true,"check-space"],"indent": [true,"spaces"],"no-duplicate-variable":true,"no-eval":true,"no-internal-module":true,"no-trailing-whitespace":true,"no-unsafe-finally":true,"no-var-keyword":true,"one-line": [true,"check-open-brace","check-whitespace"],"quotemark": [true,"double"],"semicolon": [true,"always"],"triple-equals": [true,"allow-null-check"],"typedef-whitespace": [true,? ? ? ? ? ? {"call-signature":"nospace","index-signature":"nospace","parameter":"nospace","property-declaration":"nospace","variable-declaration":"nospace"}? ? ? ? ],"variable-name": [true,"ban-keywords"],"whitespace": [true,"check-branch","check-decl","check-operator","check-separator","check-type"]? ? }}

配置React Native Packager

根目錄新建rn-cli.config.js文件 內(nèi)容為:

module.exports = {

getTransformModulePath() {

return require.resolve('react-native-typescript-transformer');

},

getSourceExts() {

return [ 'ts', 'tsx' ]

}

};

編寫(xiě)代碼

在 src文件夾里新建main.tsc文件

代碼為:

importReact, { Component }from"react";import{? ? StyleSheet,? ? Text,? ? View}from"react-native";interface Props {}interface State {}exportdefaultclassAppextendsComponent{? ? render() {return(Welcome to React Native!);? ? }}conststyles = StyleSheet.create({container: {flex:1,justifyContent:"center",alignItems:"center",backgroundColor:"#F5FCFF",? ? }asReact.ViewStyle,text: {fontSize:20,textAlign:"center",margin:10,? ? }asReact.TextStyle,});

AppRegistry

import{? ? AppRegistry,}from'react-native';importAppfrom"./src/main";AppRegistry.registerComponent('YahuiApp',()=>App);

至此 您的使用TS開(kāi)發(fā)React Native的項(xiàng)目環(huán)境搭建好了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缸榄,隨后出現(xiàn)的幾起案子渤弛,更是在濱河造成了極大的恐慌,老刑警劉巖甚带,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件她肯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鹰贵,警方通過(guò)查閱死者的電腦和手機(jī)晴氨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碉输,“玉大人籽前,你說(shuō)我怎么就攤上這事±吧” “怎么了聚假?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)闰非。 經(jīng)常有香客問(wèn)我膘格,道長(zhǎng),這世上最難降的妖魔是什么财松? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任瘪贱,我火速辦了婚禮,結(jié)果婚禮上辆毡,老公的妹妹穿的比我還像新娘菜秦。我一直安慰自己,他們只是感情好舶掖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布球昨。 她就那樣靜靜地躺著,像睡著了一般眨攘。 火紅的嫁衣襯著肌膚如雪主慰。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天鲫售,我揣著相機(jī)與錄音共螺,去河邊找鬼。 笑死情竹,一個(gè)胖子當(dāng)著我的面吹牛藐不,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼雏蛮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涎嚼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起挑秉,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铸抑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后衷模,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒲赂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年阱冶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滥嘴。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡木蹬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出若皱,到底是詐尸還是另有隱情镊叁,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布走触,位于F島的核電站晦譬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏互广。R本人自食惡果不足惜敛腌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惫皱。 院中可真熱鬧像樊,春花似錦、人聲如沸旅敷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)媳谁。三九已至涂滴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間韩脑,已是汗流浹背氢妈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留段多,地道東北人首量。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親加缘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸭叙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容