TypeScript: でライブラリを作成しています@cjol/core
。利用可能なパッケージdep
がないJavaScript 依存関係があります。@types
代わりに、カスタムdep.d.ts
ファイルを作成しました。これにより、ライブラリを開発するときにすべての型付けが適切に機能します。すべて正常にコンパイルされますが、 mydep.d.ts
は出力のどこにも表示されません。
ライブラリを別のクライアント プロジェクトに含めようとすると@cjol/client
、クライアント プロジェクトがコンパイルされません。次のようなエラーが表示されます。
../core/build/index.d.ts:2:24 - error TS7016: Could not find a declaration file for module 'dep'. '/home/cjol/.../dep/index.js' implicitly has an 'any' type.
Try `npm install @types/dep` if it exists or add a new declaration (.d.ts) file containing `declare module 'dep';`
2 > import { Foo } from "dep";
私は Yarn ワークスペースも使用しています (@cjol/core
との下の@cjol/client
同じワークスペース内の両方のパッケージです) が、ここでは関係ないと思います。カスタム定義ファイルを出力する必要がありますが、出力方法がわかりません。./core
./client
@cjol/client
編集 1:繰り返しますが、詳細が関連しているかどうかはわかりませんが、次のindex.d.ts
ようになります。前述のとおり、TypeScript によって生成されています。
import { Stuff } from "a-typescript-library";
import { Foo } from "dep";
export * from "./my-app-types";
declare type APIResponse<T> = {
/* ... */
};
export declare class API {
/* ... */
}
編集2:次のdep.d.ts
ようになります。
declare module "dep" {
import Something from "something.js";
export class DepClass {
/* loads of stuff */
}
}
編集 4:おそらく、私の質問に対する別の考え方です。カスタム.d.ts
ファイルを作成した場合、どのように配布できますか? タイプ定義を含むまったく新しいパッケージを作成する必要がありますか?