Help us understand the problem. What is going on with this article?

TypeScriptでtsdからtypingsへ移行した後のtsconfig.json

More than 3 years have passed since last update.

tsdが非推奨になったので代わりに推奨されているtypingsに移行した。typingsについてはすでに詳細な記事がQiitaでも書かれているのでこちらを見ると良い。

本記事ではtsconfig.jsonの注意点についてだけ補足として書いておく。

tsconfig.jsonの注意点

tsconfig.jsonexcludeを使ってビルドしている場合は、適切に設定しないとerror TS2300: Duplicate identifierが大量に発生してしまうので注意。原因は、typingsで型定義をインストールすると、typings/browser/...typings/main/...にそれぞれ型定義がインストールされるため、二重に自動的に読み込まれてDuplicate identifierとなってしまうのである。

解決策としてはtypingsのREADMEに書かれているとおり、excludeで使わない方の型定義を除外してやればOK。例えばフロントエンド向けの開発の場合は、typings/browser.d.tsの使用を推奨とあるので、下記のようにexclude設定にtypings/main.d.tstypings/mainを新たに追加してやれば良い。

tsconfig.json
{
    "compilerOptions": {
        ...
    },
    "exclude": [
        "typings/main.d.ts",
        "typings/main",
        "node_modules"
    ]
}

また、tsconfig.jsonexcludeではなくfilesを使っている場合は、逆にfilesに使う方の型定義を指定すれば良い。

tsconfig.json
{
    "compilerOptions": {
        ...
    },
    "files": [
        "typings/browser.d.ts",
        ...
    ]
}
wadahiro
nri
NRIは「コンサルティング」「金融 ITソリューション」「産業 ITソリューション」「IT 基盤サービス」の4事業でお客様のビジネスや快適な社会、暮らしを支えています。※各記事の内容は個人の見解であり、所属する組織の公式見解ではありません。
https://www.nri.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away