💡

TypeScriptでグローバルな型定義ファイルを用意する

2021/09/25に公開

プロジェクトで、同じ型を別のファイルで使うことがあり、共通のinterfaceやtypeをどこかに定義して自動で読みたいなーと思い、調べてみました。

調べてみると、最初はtypeRootsの話が出てきたのですがどうやら私がしたいものはそうではないようです。(///から始まったりする型定義ファイルを書くのがtypeRoots)

追記
どうやら以下のようにpathsを書かずとも、@typesディレクトリを作成してその下に配置することで自動的に読みに行ってくれるようです。

どうやらtsconfig.jsonのpathsに書けば良いらしい。

tsconfig.json
{
  "compilerOptions: {
    "paths": {
      "*": ["./types/*"]
    }
  }
}

あとは対象の場所にglobal.d.tsとかを用意して書けば勝手に他ファイルでも認識した。

global.d.ts
type uuid = string

やったね!これで別の型が定義できてグローバルに使えるので楽になった。

後になって気づいたが、これは本当に共通で使いたいものだけ記述して、他のコンポーネントで共通のinterfaceとかは別途別の場所に記述して手動importしたほうが良さそうだった

Discussion