コンテンツにスキップ

TypeScriptで始めるNode.js

もうすぐJavaの時代は終わると思う。今どんな言語を選んでもいいのであれば、JavaScriptを選ぶ。今ではWebだけでなく、Node.jsのおかげでサーバサイドで動かすバッチでも容易にJavaScriptで動かせるようになった。

わかっていても実行に移さないと口だけになるので、Node.jsをTypeScriptで開発する準備をする。

やることは

  • npmでパッケージ管理できるように準備
  • TypeScriptのパッケージインストール
  • TypeScriptでトランスパイルする設定
  • トランスパイルして実行

まずはパッケージ管理の準備

まずはNode.jsを動かす準備します。

プロジェクト用のディレクトリ「node-quickstart」作って、そこに移動。

$ mkdir ~/workspace/node-quickstart
$ cd ~/workspace/node-quickstart

npm initでパッケージ管理の設定の初期化する。

$ npm init -y

出来上がった設定を書き換える。追加するのは「"private": true」だけで、後悔するわけじゃないので入れた。

{
  "name": "node-quickstart",
  "version": "0.1.0",
  "private": true,
  "description": "テンプレート",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "crz33",
  "license": "MIT"
}

これで、npmでパッケージ管理できるようになった。

TypeScriptの依存パッケージを入れる

パッケージ管理の準備ができたので、typescriptとNode.jsの開発するための型定義をインストールする。

$ npm i typescript @types/node

Note

@typesの型定義はTypeSearchで検索できる。

TypeScriptの設定する

TypeScrptをJavaScriptにトランスパイルする設定する。まずは初期化する。

$ npx tsc --init

でも、大量の設定候補がでてくるので、以下をそのまま貼り付けたほうがはやい。

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "./dist",
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": [
    "./src/**/*"
  ]
}

テストコードを書く

srcディレクトリの下をトランスパイルするよう設定しているので、src/index.tsを作ってテストコードを書く。

function say(name: string): string {
    return `Hello, ${name}.`;
}
console.log(say('crz33'));

コンソールログに文字列を出力するだけのコード。

トランスパイルして実行

src/index.tsをJavaScriptにトランスパイルして実行する。

$ npx tsc
$ node dist/index.js
Hello, crz33.

トランスパイルせずに実行

ts-nodeを使えばトランスパイルせずに実行できる。

$ npm i ts-node
$ npx ts-node src/index.ts

まとめ

重要なところだけ整理すると以下の通り。

$ npm init -y
# package.jsonメンテ
$ npm i typescript @types/node ts-node

$ npx tsc --init
# tsconfig.jsonメンテ

$ npx ts-node src/index.ts

最終更新日: 2020年4月26日