Closed6

TypeScriptの型を定義するファイルってどこに格納するのがいいの

ikkikikkik

型定義ファイル (.d.ts)

というものがあるみたい。これを作成するのがいいのかしら
https://typescriptbook.jp/reference/declaration-file

ikkikikkik

と思ったけど、ユースケース的に異なるようだ。

型定義ファイルは主にパッケージを配布するために作成されます。

  • 型定義ファイル有り
    TypeScriptで書かれたパッケージ
    JavaScriptで書かれたパッケージだが.d.tsファイルを同梱している

JavaScriptで提供されるパッケージに型定義ファイルを補完することで、TypeScriptで型の恩恵を受けるためのものという用途のよう。

ikkikikkik

蛇足

パッケージインストールするときに、@types/~というパッケージを見かける。
これが型定義ファイルのパッケージってこと。

npm install express --save # express本体のインストール
npm install @types/express --save-dev # 型定義ファイルのインストール
ikkikikkik

蛇足:skipLibCheck

tsconfig.jsonでskipLibCheckという設定項目がある。
これをtrueにすると、JavaScriptパッケージへの型定義チェックをスキップする。
https://www.typescriptlang.org/ja/tsconfig#skipLibCheck

以下の記事がわかりやすかったです。
https://t-yng.jp/post/skiplibcheck

余談

create-next-appで生成されたtsconfig.jsonをそのまま使ってたんですけど、skipLibCheck: trueがデフォルトで記載されてた。
意図せず、JavaScriptパッケージの型定義チェックをスキップしちゃってましたね。。
とりあえず、対象の設定をコメントアウトして無効化しときました。

tsconfig.json - next.js@v13.4.3
https://github.com/vercel/next.js/blob/v13.4.3/tsconfig.json

ikkikikkik

結論:型定義ファイル (.d.ts)

これはJavaScriptパッケージ向けの話なので、本題を解決するものではない。

このスクラップは2023/05/25にクローズされました