【2024】VSCode で TypeScript を快適に書くための手順

最終更新日:





VSCodeTypeScript を書くための環境構築。 React などを使うと設定ファイルなども自動生成されるので TypeScript を試したい人向けに、必要な設定ファイルや npm パッケージ、拡張機能などのインストール手順です。

まずは、必要な npm パッケージをインストールするために package.json を作成する。

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
.
.
.

以下、長々と書いていますが、リンター、フォーマッター、TypeScript のインストールとその実行方法です。





ESLint

ESLint は、リント(静的解析)ツールで構文エラーなんかを教えてくれる。 以下 ESLintnpm パッケージと拡張機能のインストールと設定。


npm コマンドで ESLint パッケージをインストール

コマンドを実行すると色々聞かれるけど TypeScript のところ意外はデフォルトで問題ない。 その後、必要なパッケージをダウンロードしてくれて eslint.config.mjs を自動で作成してくれる。

$ npm init @eslint/config@latest

? How would you like to use ESLint? … 
  To check syntax only
▸ To check syntax and find problems

? What type of modules does your project use? … 
▸ JavaScript modules (import/export)
  CommonJS (require/exports)
  None of these

? Which framework does your project use? … 
  React
  Vue.js
▸ None of these

? Does your project use TypeScript? … 
  No
▸ Yes

? Where does your code run? …  (Press <space> to select, <a> to toggle all, <i> to invert selection)
✔ Browser
  Node

The config that you've selected requires the following dependencies:

eslint, globals, @eslint/js, typescript-eslint
? Would you like to install them now? ‣ No / Yes

? Which package manager do you want to use? … 
▸ npm
  yarn
  pnpm
  bun

package.json

"devDependencies": {
  "@eslint/js": "^9.9.0",
  "eslint": "^9.9.0",
  "globals": "^15.9.0",
  "typescript-eslint": "^8.2.0"
}


VSCode で ESLint の拡張機能をインストール

VSCode のショートカットキー Ctrl+p でコマンドパレットを開いて ESLint Extension をインストールする。 または、VSCode の左 Extensions から dbaeumer.vscode-eslint を検索してインストールする。

以下コマンドパレットでのインストール。

ext install dbaeumer.vscode-eslint



Prettier

Prettier は、コードをフォーマット(整形)する開発ツール。 以下 Prettiernpm パッケージと拡張機能のインストールと設定。


npm コマンドで Prettier パッケージをインストール

$ npm install --save-dev prettier

package.json

"devDependencies": {
  "@eslint/js": "^9.9.0",
  "eslint": "^9.9.0",
  "globals": "^15.9.0",
  "prettier": "^3.3.3",
  "typescript-eslint": "^8.2.0"
}


Prettier の設定ファイル

.prettierrc ファイルを作成して Pretteier Options を見ながら必要な設定を記述する。 設定ファイルを作らなくてもデフォルト設定でフォーマットしてくれるけど、複数人で作業する場合にする場合に統一できるのであった方がいい。

.prettierrc の例

{
  "tabWidth": 2,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5",
  "bracketSpacing": false
}


VSCode で Prettier の拡張機能をインストール

VSCode のコマンドパレットで以下を実行して Prettier Extension をインストールする。

ext install esbenp.prettier-vscode


VSCode のフォーマッターの設定

VSCode のコマンドパレットから Preferences: Open User Settings (JSON) を検索して JSON を編集するか、 現在のディレクトリに .vscode/settings.json を作成して以下を設定する。

{
  "editor.formatOnSave": true,
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
}



Prettier と ESLint の代替ツール Biome

Prettier と ESLint の代わりとして使える新興開発ツールで、フォーマットとリントがこれ1つで出来る。 Biome については別の記事 【Biome(バイオーム)】JavaScript/TypeScript などをフォーマット/リントできる開発ツール biomejs を使ってみた に書きました。



TypeScript

TypeScript のインストール。

$ npm install --save-dev typescript


TypeScript の設定ファイル tsconfig.json を作成。

$ npx tsc --init



TypeScript を書いて JavaScript に変換

ディレクトリとファイルの作成。

$ mkdir -p src/ts
$ touch src/ts/index.ts


ここまでのディレクトリ構成。

$ tree
  .
  ├── eslint.config.mjs
  ├── node_modules
  ├── package-lock.json
  ├── package.json
  ├── .prettierrc
  ├── src
  │  └── ts
  │     └── index.ts
  └── tsconfig.json


適当に index.ts を編集する。

$ cat src/ts/index.ts

const hello = () => {
  return 'Hello World';
};

const message = hello();
console.log(message);


現在のディレクトリに JavaScript に変換したファイルを生成して中身を確認する

$ tsc --outDir .
$ cat ./index.js
"use strict";
const hello = () => {
    return 'Hello World';
};
const message = hello();
console.log(message);


変換したファイルの実行。

$ node index.js
Hello World



ts-node を使って JavaScript に変換/書き出しせずに実行

TypeScript のトランスパイルと実行を package.jsonscripts に書いておけば一発で実行できるけど、 npm パッケージの ts-node を使えば、tscjs ファイルとして書き出さずに実行ができる。


ts-node のインストール

$ npm install --save-dev ts-node


エンドポイントとなるファイルを指定して実行。

$ npx ts-node src/ts/index.ts 
Hello World



コメント