ウェブサイト検索

typescript - Angularライブラリでトリプルスラッシュ参照なしでtypings.d.tsを使用する


Angular CLI ワークスペース内で、ライブラリ foo を作成しました。ライブラリ foo 内に typings.d.ts ファイルを追加しました。その後、Typescript のトリプルスラッシュディレクティブを使用して、foo.module.ts から typings.d.ts に定義された型を参照することができました。現在、トリプルスラッシュディレクティブを使用せずに済ませたいのですが、ディレクティブを削除すると次のエラーが発生します:

error TS2304: Cannot find name 'MyLibrary'.

このエラーを受け取っているのは少し驚きです。なぜなら、typings.d.ts は src ディレクトリ内に定義されており、また私は最近のバージョンの TypeScript (v3.2.4) を使用しているからです。したがって、コンパイラが typings.d.ts をそのまま認識することを期待していました。また、tsconfig.lib.json に次の内容を追加してみました:

"include": [
  "src/typings.d.ts"
]

少なくともこの設定は反映されるだろうと予想していました。なぜなら、ng-packagr のドキュメントには、Angular CLI プロジェクト内では tsconfig.lib.json ファイルを変更できると書かれているからです。

では、私の具体的な質問は次の通りです:Angularライブラリ内で、トリプルスラッシュの参照を使用せずに、typings.d.ts ファイルから型を参照することは可能でしょうか?もし不可能であれば、その理由は何でしょうか?

私の砂場はここにあります。

関連リソース

  • angular.io - ランタイムグローバルライブラリの型定義
  • ng-packagr - ライブラリビルドにカスタム型定義を追加する方法は?

関連記事