1. ホーム
  2. typescript

[解決済み] types/* を `dependencies` と `devDependencies` のどちらに入れるかは、どのように決めたらよいですか?

2022-03-15 18:08:26

質問

私はプロジェクトでTypeScript 2を使用しています。あるjsライブラリを使いたいのですが、そのライブラリのタイピングも使いたいのです。私は、単純な npm install @types/some-library . を使うべきかどうか迷っています。 --save または --save-dev があります。DefinetelyTypedのGitHubのreadmeでも、両方のバージョンについて触れているような気がしますが、説明されていないようです。私は、@typesは devDependencies は開発時に必要なものであり、実行時には使用されないからです。 dependencies . 困ったなあ。

に入るかどうかは、どのように判断したらよいのでしょうか。 dependencies または devDependencies ? 実際に、多少なりとも公式な指示はあるのでしょうか?

解決方法は?

例えば、@types/some-module パッケージを devDependencies に持つパッケージ "A" を開発しているとします。何らかの理由で @types/some-module から型をエクスポートしているとします。

import {SomeType} from 'some-module';
export default class APackageClass {
     constructor(private config: SomeType) {

     }
}

現在、"A" パッケージの DevDependencies がインストールされていないため、"A" パッケージの Typescript 消費者は SomeType が何であるかを推測することができません。

このような場合、@types/* パッケージを通常の "dependencies" と共に配置する必要があります。他のケースでは、"devDependencies" で十分です。