JavaScriptの需要とともに型、オブジェクト指向を持つTypeScriptの人気が上がってきています。
今回は『次来るかもしれない!?TypeScript』について語っちゃいますmm
#TypeScriptとは
TypeScriptは型やオブジェクト指向を持つJavaScript言語のようなものです。
TypeScriptのコード拡張子は「.ts」です。「.ts」ファイルを直接実行することはできないため、これをトランスコンパイルし、JavaScriptファイルである「.js」に変換します。
2度変換するのは少々面倒ですよね(笑)
#TypeScriptは2種類の目的が存在する
TypeScriptは2種類のトランスコンパイラ方法があります。
❶ブラウザで動作させるJavaScriptファイルを生成するため
❷node.jsで動作させるJavaScriptファイルを生成するため
ブラウザでのJavaScriptで有名な命令でwindows.alertがあります。
これを実行するとブラウザ上でアラート(警告)が表示されます。
しかし、node.jsはブラウザを介せず、
PC上で動作するためwindows.alertコマンドは理解できません。
TypeScriptを利用する場合は実行環境が『ブラウザ』か『node.js』なのか理解しておく必要があります。
#Typescriptメリット
JavaScriptは現代のアセンブラと呼ばれるほど難解な言語です。
原因は型指定が存在しないことにあります。
変数に整数型、文字型、オブジェクト型、変数まで何でも入っちゃうんですよね(笑)。
変数にパラメータを渡すときにも
・何を渡せばよいのか
・必須変数は何なのか
『API仕様書を読む』か『無ければコードを読む』しかありません。
しかしTypeScriptにより型を明確にすることにより、
それらの無駄な作業時間がなくなります。
また型が正確に指定していると、VS Codeなどでコーディングする際に補完機能が働きタイプミスやパラメータミスなど初歩的なバグを無くす事ができ、開発効率も上がります。
メリットを一言でいうならば「開発効率が超絶UP」につきます。
環境構築が必要な分、スロースターターですが、それに有り余るほどの見返りがあります。
#tsconfig.jsonのメモ
{
"compilerOptions": {
"target": "ES2019", /* ECMAScriptのターゲットバージョンを指定します: 'ES3'(デフォルト), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018'または 'ESNEXT' */
"module": "commonjs", /* モジュールコード生成: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015',または 'ESNext'を指定します。 */
"strict": true, /* すべての厳密な型チェックオプションを有効にします。 */
"noImplicitAny": true, /* 暗黙の 'any'型で式と宣言のエラーを発生させます。 */
"strictNullChecks": true, /* 厳密なヌルチェックを有効にします。 */
"noImplicitThis": true, /* 暗黙の 'any'型で 'this'式のエラーを発生させます。 */
"esModuleInterop": true /* デフォルトのエクスポートがないモジュールからのデフォルトのインポートを許可します。これはコードの出力には影響しません。型検査だけです。 */
}
}