搭建typescript环境的步骤

首先你电脑确保已经配置好react-native的环境,能够运行普通的RN项目。现在我们一步一步在RN的基础上来搭建typescript的环境。

1、新建一个初始化项目,命令:

react-native init AwesomeProject

cd AwesomeProject

react-native run-ios

运行完上面的步骤能正常跑起项目就ok,进行第二步。

2、安装typescript 和 typings

npm install --save-dev typescript,执行这个命令后,package.json文件里的devDependencies会自动添加"typescript": "^2.1.5"。当然你也可以安装全局的typescript,用这个命令:npm install -g typescript,(或指定npm install -g typescript@2.0) ,但是安装在项目的话,会比较直观,版本也好控制。

TypeScript 2.0 開始, DefinitelyTyped的類型定義自動被發布成npm包 (@ types/XXX) , 這種包就不需要typings來安裝,例如npm install --save @types/core-decorators就能把core-decorator声明d.ts文件下载,就不用安装typings。

不过用typings下载d.ts,现在也是没问题的,现在我们介绍下如何用typings。

安装typings : npm install -g typings,这个装全局就好了,主要是用来下载和管理d.ts文件。

然后初始化tsconfig.json和typings.json,命令:tsc --init,typings init, 在项目的根目录能看到两个新建的文件。

tsconfig.json的配置,可以按照如下:

对于js文件生成的路径,我们需要建一个硬链接的文件,需要用命令:

ln -s TypeScriptDemo.TypeScriptDemo.out

至于为什么要这样创建js生成路径,你可以试试在项目随便建个js文件,结果你会发现文件路径很奇怪,跟你预期很不一样。还有的是,点击项目,用替身的选项生成文件夹,属于软连接,跟用命令生成的硬链接文件夹是不一样的。可以看看这个硬链接和软链接的区别。用命令 ls -l 查看文件就发现不同之处。

typescript环境里配置js路径总是莫名其妙的,你不一定需要按照我上面的方式去弄。

3、安装d.ts文件

typings搜索包:typings search react

typings安装包:typings install dt~react --module --save

安装语法:typings install <source>~<name> --global/--module --save,source是包来源,上面命令中的dt是指DefinitelyTyped源。(或者typings install <name> --save,默认从npm下载。经测试,并不能下载d.ts文件,还是用第一个语法好了。)

我们需要安装react和react-native这两个的d.ts文件:typings install dt~react dt~react-native --module --save

在项目可以看到自动生成了typings文件,typings.json也把这两个声明添加进去了。

如果你是别的地方把typescript的项目下载过来,可以直接运行:typings install,就能把该项目typings.json配置的d.ts文件都下载下来.

4、新建tsx文件,尝试跑简单的界面

开两个命令界面,一个运行:react-native start,这个是运行RN的服务器,另一个运行:$(npm bin)/tsc --watch,这个是时刻watch项目中typescript语法错误,并且在Visual studio code点击保存文件,能迅速把tsx文件转换成js文件。

例如建个main.tsx文件,把index.js的内容复制过来,发现styles报错,

点击红色处,提示“alignItems”的值不匹配定义的类型。我们打开react-native.d.ts文件,找到alignItems的结构定义,如图:

这时候需要我们改react-naitve的d.ts文件,方便我们以后开发。把FlexStyle改成如下:

把提示type错误,都改成这样子。再看看watch命令,已经没错误提示了,现在运行下项目,最后可能发现js文件路径还是有些小问题。如果可尝试在scr-tsx文件夹下多建几个文件夹以及几个tsx文件放入其中,js文件夹路径应该就会正常点。

最后,你修改过的react-native.d.ts文件,如果再次运行typings install 的命令,会把你修改过的内容被官方那个覆盖掉了。所以,我们可以新建以typings开头命名的文件来存放我们修改的react-naitve.d.ts 文件,避免被typings install命令覆盖掉。至于为什么要用typings开头,就跟node查找文件的策略有关,可以看看 typescript 官方文档,里面有说。以下是需要修改的文件:

5、下载第三库

例如我们要下载core-decorators库,在类或方法前面“@autobind”自动绑定this。先用npm 下载该库,

npm install core-decorators --save,再用typings下载它的d.ts文件,

typings install dt~core-decorators --module --save

还有个网络库whatwg-fetch,都可以下载来用。

上述步骤的demo供参考的连接。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,547评论 4 374
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,787评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,175评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,752评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,169评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,056评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,195评论 2 321
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,980评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,724评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,872评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,344评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,667评论 3 264
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,379评论 3 245
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,202评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,992评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,189评论 2 286
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,987评论 2 279

推荐阅读更多精彩内容