コツコツと

Node.jsとTypeScriptでHello Worldする

April 25, 2020

Node.js と TypeScript で Hello World するまでのメモです。
Mac & Node.js がインストール済みを前提にしています。

Node.js で Hello World

まず、Node.js で「Hello World」を表示する JavaScript を実行してみます。
JavaScript のプログラムは下記の通りです。

// helloworld.js
var str = "Hello World"
console.log(str)

次に Node.js を用いて上記のプログラムを実行します。
コマンドラインでnode helloworld.jsを実行すると期待通りの動作をします。

$ node helloworld.js
Hello World

TypeScript で Hello World

TypeScript で Hello World をしてみます。 まずは TypeScript 環境を構築します。今回はローカルインストールの方法です。
実行後、カレントディレクトリに node_modules が生成されています。

$ npm install typescript --no-save
npm WARN enoent ENOENT: no such file or directory, open '/Users/****/temp/hello/package.json'
npm WARN hello No description
npm WARN hello No repository field.
npm WARN hello No README data
npm WARN hello No license field.

+ typescript@3.8.3
added 1 package from 1 contributor in 26.528s
found 0 vulnerabilities

package.json がないと警告が出ていますが、今回は試しに TypeScript を動かすだけなので無視して大丈夫です。
ちなみに package.json はnpm installしたパッケージの依存性やバージョンなどを管理する場合に必要となるため、npm initを実行して生成しておいた方がいいです。

次に TypeScript ファイルを作成します。

// tsHelloWorld.ts
let str = "Hello World"
str = 1
console.log(str)

TypeScript は型チェックしてくれるので、エラーが出るように 2 行目にわざと数値型を再代入しています。
TypeScript の実行ファイルは./node_modules/.bin/tscに保存されていますので、 それを利用して上記の TypeScript ファイルをコンパイルすると次の結果となります。

$ ./node_modules/.bin/tsc tsHelloWorld.ts
tsHelloWorld.ts:2:1 - error TS2322: Type '1' is not assignable to type 'string'.

2 str = 1;
  ~~~


Found 1 error.

2 行目を削除して、再度実行すると期待通りの動作となります。

$ ./node_modules/.bin/tsc tsHelloWorld.ts
$ node tsHelloWorld.js
Hello World

ちなみに、npxを利用すると、$ npx tsc tsHelloWorld.tsでコンパイルが実行可能です。
但し npx は、Node >= 8.10 及び npm >= 5.6 の環境が必要となります。

参考情報


© 2020 jiri3