Node.js + TypeScriptでexpressの入力支援、型推論を表示させるまで
2023-04-02
typescript
、express
をインストール
npm init -y npm install typescript npx tsc --init npm install express
app.ts
を作成
touch app.ts
app.ts
でexpress
をrequire
したところエラーが出た
const express = require('express')
TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
- TypeScriptは
node.js
の関数であるrequire
を理解していない require
を理解させるためにNode.js
の型定義ファイルが必要- エラー内容に従って
@types/node
をインストール @types/node
はNode.jsの型定義ファイル- インストールすると、エラーが解消される
npm install -D @types/node
インポートしたexpress
で入力支援が行われない
app.
と入力しても、listen
などが入力支援で出てこないapp
の型推論がany
になっておりexpress用の型定義ファイルが無いためexpress
用の型定義ファイルである@types/express
をインストールする
npm install -D @types/express
しかし、まだでない
- そもそも
require
にカーソルを合わせて見てみると、any
を返す関数として定義されている
TS80005: 'require' call may be converted to an import.
- TypeScriptはこの
require
関数が何をしているのか知らない状態 - TypeScriptで正しく機能させるためには、TypeScriptにあるモジュールシステムである
import
を使わないといけない require
をimport
に変更する
// const express = require('express') import express from 'express' // これに変更 const app = express()
- 正しく入力支援が出るようになりました。