JavaScriptからの移行ガイド
前提事項:
あなたはJavaScriptを知っている
プロジェクトで使用されているパターンや構築ツール(webpackなど)を知っている
そのような前提をもとに、一般にプロセスは以下のステップからなる:
tsconfig.json
を追加するソースコードの拡張子を
.js
から.ts
に変更する。any型を使ってエラーを抑制する新しいコードはTypeScriptで記述し、できるだけ
any
を使わないようにする古いコードに戻り、型アノテーションを追加し、バグを修正する
サードパーティ製JavaScriptコードの型定義を使用する
これらの点のいくつかをさらに議論しましょう。
すべてのJavaScriptは_有効な_TypeScriptであることに注意してください。つまり、TypeScriptコンパイラにJavaScriptをいくつか与えると、TypeScriptコンパイラによって生成されたJavaScriptは元のJavaScriptとまったく同じように動作します。つまり、拡張子を.js
から.ts
に変更しても、コードベースに悪影響はありません。
エラーを抑制する
TypeScriptはすぐに型チェックを開始しますが、元のJavaScriptコードはあなたが思っていたほど整っていない可能性があります。したがって、エラーが発生します。これらのエラーの多くは、any
を使用して抑制することができます。例:
エラーが正しいものであったとしても(ほとんどの場合、推測された情報は、開発者の考えよりも優れています)、あなたはおそらくTypeScriptで新しいコードを書きつつ、古いコードを徐々に更新することに集中することになるでしょう。型エラーを抑制する方法は以下の通りです:
他の場所で何かをany
とアノテーションしたいことがあるかもしれません。例:
エラーを抑制した結果:
注意:エラーを抑止することは危険ですが、新しく書いたTypeScriptコードでエラー通知を受けることができます。
// TODO:
コメントを残したほうが良いかもしれません。
サードパーティ製JavaScript
JavaScriptをTypeScriptに変更することはできますが、世界全体を変更してTypeScriptを使用することはできません。これは、TypeScriptのアンビエント定義のサポートが必要な部分です。最初はvendor.d.ts
(.d.ts
拡張子が、これは宣言ファイルであることを指定しています)を作成し、色々と雑多に詰め込むことをオススメします。あるいは、ライブラリに固有のファイルを作成します(例えば、jqueryのためのjquery.d.ts
)。
jquery
の場合を考えてください。jqueryのために些細な定義を素早く簡単に作ることができます:
場合によっては、明示的なアノテーションを何か(例えばJQuery
)に追加したいかもしれないし、型宣言スペースに何かが必要な場合もあります。type
キーワードを使って簡単に行うことができます:
これにより、将来の更新が簡単になります。
サードパーティ製NPMモジュール
必要に応じてファイルにインポートすることができます:
外部の非jsリソース
JS以外のファイルであっても、単純な*
スタイルの宣言でインポートできます。例えば.css
です(webpackスタイルのローダーやCSSモジュールのようなものを使用している場合)。理想的には、global.d.ts
ファイルの中でインポートします。
これで、import * as foo from "./some/file.css"
をインポートすることができます。
同様に、htmlテンプレート(angularなど)を使用している場合は、次のことを行えます:
その他
最終更新
役に立ちましたか?