CentOS Stream 9
Sponsored Link

Node.js + TypeScript2022/06/28

Node.js を TypeScript で利用できるよう設定します。
[2] 任意の一般ユーザーで、任意のプロジェクトを TypeScript 環境に設定します。
[cent@dlp ~]$
mkdir testproject

[cent@dlp ~]$
cd testproject
# 依存関係の定義ファイル package.json 生成

[cent@dlp testproject]$
npm init -y

Wrote to /home/cent/testproject/package.json:

  "name": "testproject",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  "keywords": [],
  "author": "",
  "license": "ISC"

# TypeScript インストール

[cent@dlp testproject]$
npm install typescript ts-node

added 19 packages, and audited 20 packages in 6s

found 0 vulnerabilities

# Node.js の型宣言ファイル インストール

[cent@dlp testproject]$
npm install @types/node

up to date, audited 20 packages in 529ms

found 0 vulnerabilities

# 設定ファイル tsconfig.json を生成

[cent@dlp testproject]$
npx tsc --init --module commonjs

Created a new tsconfig.json with:

  target: es2016
  module: commonjs
  strict: true
  esModuleInterop: true
  skipLibCheck: true
  forceConsistentCasingInFileNames: true

You can learn more at https://aka.ms/tsconfig

# 以下の内容で tsconfig.json が生成される

[cent@dlp testproject]$
grep -v -E "^ */|^$" tsconfig.json

  "compilerOptions": {
    "target": "es2016",                                  /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
    "module": "commonjs",                                /* Specify what module code is generated. */
    "esModuleInterop": true,                             /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
    "forceConsistentCasingInFileNames": true,            /* Ensure that casing is correct in imports. */
    "strict": true,                                      /* Enable all strict type-checking options. */
    "skipLibCheck": true                                 /* Skip type checking all .d.ts files. */

# テストアプリを作成して動作確認

[cent@dlp testproject]$
mkdir src

[cent@dlp testproject]$
vi src/test-app.ts
import * as http from "http";
import * as os from 'os';

const hostname = os.hostname();
const port = 3000;
const server = http.createServer((req, res) =>
    res.write("Hello TypeScript World on Node.js!\n");

[cent@dlp testproject]$
./node_modules/.bin/ts-node src/test-app.ts

  任意のクライアントコンピューターで表示された URL に Web アクセスして、以下のようなページが表示されれば OK です。