v0.57以降React Nativeが公式でTypeScriptに対応するようになりました。
Babel7でTypeScriptをトランスコンパイル出来るようになったため、その仕組みをReact Nativeが利用する形で実現されています。 ただし、Babelは古いJavaScriptへのトランスコンパイルを行うだけで、型チェックまでは行ってくれません。
そのため型チェックはtscコマンドで別途実行する必要があります。
そこで、この記事ではBabel7でReact Native+TypeScriptを実行しつつ、tscコマンドによる型チェックが出来る環境を構築するための手順を解説していきます。
これらに当てはまる方におすすめの記事となっています。これを読めばTypeScriptをReact Nativeに導入する方法が丸わかりですよ。
まずは下記コマンドでReact Nativeのサンプルプロジェクトを作成します。
react-native init TSSampleApp
サンプルプロジェクトが作成できたら、
下記コマンドを実行して画面が正常に表示されることを確認します。
npm run ios
今回はTypeScriptの環境構築がメインですので、Androidは割愛します。
次に下記コマンドでApp.tsxにファイル名をリネームします。
mv App.js App.tsx
.tsxはJSXを返すファイルでTypeScriptを利用する場合の拡張子です。
リネーム後にシミュレーターを確認すると下記のエラーが表示されます。
これは利用しているReactやReact Nativeのライブラリの型定義ファイルが見つからず、
TypeScriptのコンパイルエラーになるためです。
次に下記コマンドでTypeScript本体とReact Native開発に必要な型定義ファイルをインストールします。
インストールするライブラリはReact Nativeの公式ドキュメントに従っています。
yarn add --dev typescript @types/jest @types/react @types/react-native @types/react-test-renderer
@typesで始まっているTypeScriptの型定義ファイルはDefinitelyTypedで管理されています。
ライブラリのインストールが完了したら、上記のMetro Bundlerを再起動します。
起動が完了したら下記画面が表示されるようになります。
これでTypeScriptをBabelでトランスコンパイルして実行出来るようになりました。
次にtscコマンドでTypeScriptの型チェックが出来るようにします。
下記の内容でtsconfig.jsonをプロジェクトのルートに作成します。
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react",
"lib": ["es6"],
"moduleResolution": "node”,
"noEmit": true,
"strict": true,
"target": "esnext"
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
]
}
noEmit: true
を設定することでJavaScriptのトランスコンパイルはBabelに任せ、 tscコマンドはファイル出力はせず型チェックのみ行うようにしています。
上記の設定内容もReact Nativeの公式ドキュメントに従っています。
次にtscコマンドをnpm-scriptsのbuildで実行できるようにpackage.jsonを修正します。
"scripts": { "build": "tsc", … },
追加できたら下記コマンドを実行します。
npm run build
実行すると以下のようなエラーが表示されます。
> tsc App.tsx:26:18 - error TS2304: Cannot find name 'React$Node'. 26 const App: () => React$Node = () => { App.tsx:35:12 - error TS2304: Cannot find name 'global'. 35 {global.HermesInternal == null ? null : ( Found 2 errors.
React$Node
はReact.ReactNode
に書き換え、HermesInternal
に関してはCannot find name ‘global’.ts(2304) のイシューを参考に修正します。
TypeScriptテンプレートを利用せずにReact Nativeアプリを作成した場合、デフォルトではflowを利用するようになっています。
TypeScriptを利用する場合は不要なので、 下記コマンドで設定ファイルを削除します。
rm .flowconfig
これでTypeScriptを利用してReact Native開発が行えるようになりました。
TypeScriptを利用してReact Native開発を行うことで、JavaScriptのコードのみでiOSとAndroid両方のアプリを開発することができます。
この記事では環境構築の手順を紹介していきました。こちらの記事では実際の画面の開発について解説しています。
ぜひ合わせてチェックしてみて下さい。
こうしたアプリ開発を外注してみるのはいかがでしょうか。 dehaソリューションズではオフショア開発によって低コストで迅速な開発をサポートしています。
Laravelに関して詳しくお話を聞きたい方、開発相談や無料お見積りをしたい方はこちらからご気軽にお問い合わせください。
▼ dehaソリューションへの簡単見積もりの依頼はこちら
オフショア開発は、コスト削減や専門的なスキルの活用を目的として、多くの企業が採用している手法です。 しかし、オフショア開発にはセキュリティに関する特有の課題が伴います。 この記事では、オフショア開発におけるセキュリティ課題を明確にし、それに対する効果的な対策を検討します。 オフショア開発に興味がある方 オフショア開発のセキュリティ対策について知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発を行う際に気をつけるべきセキュリティ問題とその対策方法が丸わかりですよ。 (more…)
2025年、データセンター市場とクラウド市場はさらなる進化を遂げています。デジタル化の加速や生成AIなどの新技術の普及により、データ処理能力の需要が急増。 これに伴い、世界および日本国内での市場規模とプレイヤーの動きが注目されています。 この記事では、最新の市場データとトレンドをもとに、データセンターおよびクラウド市場の現状と今後の展望を詳しく解説します。 データセンターおよびクラウド市場の現状や展望が知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば国内の2025年最新のデータセンター市場やクラウド市場の動向だけでなく、世界の動向まで丸わかりですよ。 (more…)
近年、業務のデジタル化が進む中、手書きや印刷された文書を効率的にデータ化する技術が注目を集めています。 その中でも、AI(人工知能)を活用したOCR(光学文字認識)技術であるAI-OCRは、従来のOCRを大きく進化させ、多様な業界で導入が進んでいます。 この記事では、AI-OCRとは何か、従来のOCR技術との違い、その種類や具体的な導入メリットについて詳しく解説します。 AI-OCRが気になっている方AIをビジネスに取り入れたい方社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAI-OCRがどのように業務効率を向上させ、現代のビジネスにどのような価値をもたらすのかがわかりますよ。 (more…)
システム開発の外注は、効率的なソリューションを提供し、コストを節約するために非常に有益な方法です。 しかし、外注のプロジェクトは失敗する可能性もあり、それを防ぐためにはいくつかの重要なコツがあります。 そこでこの記事では、システム開発の外注プロジェクトを成功させるための5つの重要なコツを説明します。 システム開発の外注をしたい方 社内のIT人材が不足している方 オフショア開発を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発を成功させるための方法が丸わかりですよ。 (more…)
コスト削減や、IT人材確保の面で注目されるオフショア開発。 実はアプリ開発にももってこいの開発手法なのです。 「人件費は下がったとしても、他の面で費用がかかったりしないか?トータルコストは本当に下がるのか?」 「コストを抑えた結果、質の悪いアプリを納品されないか?」 など不安を抱えている方向けに、この記事ではアプリをオフショア開発する際のポイントを紹介していきます。 オフショア開発に興味がある方 アプリ開発を行いたい方 社内のIT人材が不足している方 オフショア開発の予算が知りたい方 これらに当てはまる方におすすめの記事となってこれを読めば、オフショア開発初心者の人でも会社選びを失敗することなく、アプリ開発を行うポイントが丸わかりですよ。 (more…)
近年、企業のデジタルトランスフォーメーション(DX)が進む中で、手書き文書をデジタル化する技術であるOCR(Optical Character Recognition)が注目を集めています。 この記事では、そんなOCRの基本的な仕組みやその活用方法、さらに業務効率化のメリットについて解説します。 OCRに興味がある方 デジタルトランスフォーメーション(DX)を進めている方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばOCRがどのような技術なのかがわかるのはもちろん、具体的な活用方法まで丸わかりですよ。 (more…)