Node.js QuickStart

TypeScriptは、Node.jsを公式にサポートしています。素早くNode.jsプロジェクトを設定する方法は次のとおりです。

注意:これらのステップの多くは実際にはNode.jsの設定手順です

  1. Node.jsプロジェクトpackage.jsonをセットアップする。速い方法:npm init -y

  2. TypeScriptを追加する(npm install typescript --save-dev)

  3. node.d.tsを追加する(npm install @types/node --save-dev)

  4. TypeScriptの設定ファイルtsconfig.jsonをいくつかの重要なオプションを使って初期化する(npx tsc --init --rootDir src --outDir lib --esModuleInterop --resolveJsonModule --lib es6,dom --module commonjs)。

それでおしまい!あなたのIDE(例えばcode .)を起動して遊んでください。TypeScriptの安全性と開発者人間工学とあわせて、組み込みのすべてのノードモジュールを使用することができます(例:import fs = require( 'fs');)。

ボーナス: ライブコンパイル+実行

  • nodeでのライブコンパイル+実行のために使うts-nodeを追加する(npm install ts-node --save-dev)

  • ファイルが変更されるたびにts-nodeを呼び出すnodemonを追加する(npm install nodemon --save-dev)

アプリケーションのエントリポイントに基づいてscriptターゲットをpackage.jsonに追加するだけです。エントリポイントをindex.tsと仮定した場合:

"scripts": {
"start": "npm run build:live",
"build:live": "nodemon --exec ./node_modules/.bin/ts-node -- ./index.ts"
},

これで、npm startを実行し、index.tsを編集することができます:

  • nodemonはそのコマンド(ts-node)を再実行する

  • ts-nodeは自動的にtsconfig.jsonとインストールされたtypescriptバージョンを取得し、トランスパイルを行う

  • ts-nodeは出力されたjavascriptをNode.jsで実行する

TypeScriptのnode moduleを作成する

TypeScriptで書かれたモジュールを使用することは、コンパイル時の安全性とオートコンプリートが得られるので、非常に楽しいことです。

高品質のTypeScriptモジュールの作成は簡単です。以下の望ましいフォルダ構造を仮定します。

package
├─ package.json
├─ tsconfig.json
├─ src
│ ├─ All your source files
│ ├─ index.ts
│ ├─ foo.ts
│ └─ ...
└─ lib
├─ All your compiled files
├─ index.d.ts
├─ index.js
├─ foo.d.ts
├─ foo.js
└─ ...
  • tsconfig.jsonについて

    • compilerOptions"outDir": "lib"と、"declaration": trueを設定します < これは宣言ファイルとjsファイルをlibフォルダに生成します

    • include:["./src / ** / *"]を設定します < これはsrcディレクトリからのすべてのファイルを対象に含めます

  • package.jsonについて

    • "main": "lib/index" <これはNode.jsにlib/index.jsをロードするように指示します

    • "types": "lib/index" <これはTypeScriptにlib/index.d.tsをロードするように指示します

パッケージの例:

  • npm install typestyle for TypeStyle

  • 使用法:import { style } from 'typestyle';は、完全な型安全性を提供します

MORE:

  • あなたのパッケージが他のTypeScriptで作られたパッケージに依存している場合は、そのまま生のJSパッケージと同様にdependencies/devDependencies/ peerDependenciesに入れてください

  • パッケージが他のJavaScript作成パッケージに依存していて、プロジェクトで型安全性を使用する場合は、それらの型定義(@types/fooなど)をdevDependenciesに入れます。JavaScriptの型は、主なNPMの流れの範囲外で管理する必要があります。JavaScriptのエコシステムでは、セマンティックなバージョン管理が行われていない場合、型をあまりにも簡単に壊すので、ユーザーが型を必要とする場合は、それらに対応する@types/fooのバージョンをインストールする必要があります。

ボーナスポイント

そのようなNPMモジュールは、browserify(tsifyを使用)またはwebpack(ts-loaderを使用)でうまく動作します。