react native 使用typescript
前言
TypeScript作为JavaScript的一个富类型扩展语言,深受代码风格严谨的前端开发者欢迎。但在react-native下,因为packager的配置困难,使用TypeScript一直是个麻烦的选择。
网上的大部分方案,甚至微软的官方方案都是启动两个进程,一个进程将typescript编译成javascript,另一个进程则是RN默认的packager。
实际上自从RN的packager独立并改名为metro之后,也多了很多配置的可能性
。因此我们也能更高效的在React Native工程中使用TypeScript了。现在我们来尝试进行这样的配置。
正文
初始化RN工程
如果你已经有一个RN工程了,可以跳过这一步。
按照RN中文网的入门文档安装所需的软件,然后初始化项目:
react-native init MyProject
cd MyProject
安装TypeScript相关依赖
yarn add tslib @types/react @types/react-native
yarn add --dev react-native-typescript-transformer typescript
配置tsconfig.json
您可以从您之前的TS项目中复制这个文件,也可以使用tsc初始化(具体参考TypeScript的教程)。注意务必设置"jsx":"react"
注意多余的注释可能会不兼容,需要移除。
{
"compilerOptions": {
"importHelpers": true,
"target": "es2015",
"jsx": "react",
"noEmit": true,
"moduleResolution": "node",
},
"exclude": [
"node_modules",
],
}
在项目目录中新建或编辑rn-cli.config.js,使用支持typescript的transfomer
module.exports = {
getTransformModulePath() {
return require.resolve('react-native-typescript-transformer');
},
getSourceExts() {
return ['ts', 'tsx'];
}
}
最后修改你的源代码
入口index.js和App.js的文件名请不要改变,你可以新建src文件夹,在其中建立index.tsx,然后把App.js的内容改成 import './src';
然后在index.tsx里重新编写你的入口代码。注意引用react的写法有所区别:
-import React, { Component } from 'react';
+import React from 'react'
+import { Component } from 'react';
自由的TS吧,少年
接下来你可以在工程中自由的使用ts/tsx来编写TypeScript代码啦。
react native 使用typescript的更多相关文章
- react+Native使用typeScript
1.为什么使用typeScript? typeScript是JavaScript的超集 typeScript在编译期间就可以将错误抛出 增强代码的可阅读性和可维护性 2.案例的功能逻辑 切换职业 选择 ...
- 使用Visual Studio Code和typescript 开发调试React Native项目
关于React Native的详细介绍我就不叙述了,他是使用js构建原声app的开发框架.一次变异多平台运行,非常强大.但是个人不喜欢js的过于灵活(弱类型)的语法.强大的强类型语言Typescrip ...
- 使用TypeScript创建React Native
⒈初始化 React Native环境 参考https://reactnative.cn/docs/getting-started.html ⒉安装React Native官方的脚手架工具 npm i ...
- React Native相关
安装相关工具参考(视频):http://ninghao.net/course/3001?a=26 学习参考:http://reactnative.cn/ 学习参考:http://www.ruanyif ...
- Hybrid App 和 React Native 开发那点事
简介:Hybrid App(混合模式移动应用)开发是指介于Web-app.Native-App这两者之间的一种开发模式,兼具「Native App 良好用户交互体验的优势」和「Web App 跨平台开 ...
- [翻译]Review——24 tips for React Native you probably want to know
Post author: Albert Gao Post link: http://www.albertgao.xyz/2018/05/30/24-tips-for-react-native-you- ...
- 用 React 编写移动应用 React Native
转载:用 React 编写移动应用 React Native ReactNative 可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App.而且React ...
- React Native工程中TSLint静态检查工具的探索之路
建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查代码, ...
- React Native v0.4 发布,用 React 编写移动应用
React Native v0.4 发布,自从 React Native 开源以来,包括超过 12.5k stars,1000 commits,500 issues,380 pull requests ...
- 我也开源... React Native Messager
近期有空,玩转React Native. https://github.com/andyc365/ReactNativeMessager React Native Messager A React N ...
随机推荐
- 4、dubbo的高可用
1.zookeeper宕机与dubbo直连 现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务. 原因: 健壮性 l 监控中心宕掉不影响使用,只是丢失部分采样数据 l 数据库宕掉后, ...
- nexus 莫名错误 两个解决的地方
unknown org.sonatype.nexus.reposibory.httpclient.internal.httpclientfaceImpl 也没太解决,先记录下来吧
- whale - awesome 关联单词
whale - awesome 关联单词 whale 对应 awesome 里面的 awe 两个含义应该是一样的. whale wa哇-惊叹词-大型海洋生物-鲸鱼 来自古英语hwael,大型海洋生物, ...
- pandas:如何保存数据比较好?
我们在使用pandas处理完数据之后,最终总是要把数据作为一个文件保存下来,那么,保存数据最常用的文件是什么呢?我想大部分人一定会选择csv或者excel. 刚接触数据分析时,我也是这么选择的,不过, ...
- gRPC入门学习之旅(二)
gRPC入门学习之旅(一) gRPC是一个高性能.通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源. g ...
- 计算机网络-DNS以及FastGitHub
前言 你是否观察到过这种现象,在访问Github时,有的时候能正常访问,有的时候再次刷新就访问不了,那么能不能有什么办法能一直访问.答案是有,就是在DNS层面能保证一直稳定获取可用并且快速的IP,这就 ...
- 超高并发下,Redis热点数据风险破解
★ Redis24篇集合 1 介绍 作者是互联网一线研发负责人,所在业务也是业内核心流量来源,经常参与 业务预定.积分竞拍.商品秒杀等工作. 近期参与多场新员工的面试工作,经常就 『超高并发场景下热点 ...
- SSH框架使用AOP代理+自定义注解遇到的相关问题总结
1.AOP注解失效问题 编写完成注解和AOP切面类时,在controller中加上注解,注解不生效.在配置文件xml中开启AOP注解: <aop:aspectj-autoproxy proxy- ...
- 浅谈 KingbaseES 和 SQLServer 中的 instead of 触发器
本文基于Kingbase和SqlServer的INSTEAD OF 触发器主要功能特点进行对比浅析,同时针对SqlServer 的INSTEAD OF 触发器提出了多种kingbase环境的等价代码方 ...
- Base64编码的全面介绍
1. Base64的定义和作用 Base64是一种用64个字符表示二进制数据的编码方式,通常用于在网络传输中将二进制数据转换为可打印字符的形式.Base64编码后的数据由大小写字母.数字和特殊字符组成 ...