私はタイピングファイルで定義した外部ロギングコンポーネント(jsファイルで参照)への参照を持っています
typings.d.ts
declare var LogglyTracker;
angularアプリケーションをバージョン8から9にアップグレードしましたが、ng buildを実行すると、次のエラーが発生します
Src/app/error/loggly.service.ts:13:29のエラー-エラーTS2304:「LogglyTracker」という名前が見つかりません。
この問題を修正するための推奨される方法が誰か知っていますか?このコードはAngular 8。
@Injectable()
export class LogglyLoggerService {
// https://github.com/loggly/loggly-jslogger
private loggly: any = new LogglyTracker(); //!! Error here
}
私は作者とまったく同じ問題を抱えていました-Angular 9にアップグレードした後、ローカルタイプ定義が見つかりませんでした。
Angular 8では、tsconfig.json
にそれらへの参照を追加しました
"typeRoots": [
"node_modules/@types",
"../src/typings/my-lib/index.d.ts"
"node_modules/@types"
]
Angular 9にアップグレードした後、my-lib
が見つかりませんでした。Angular 9 CLIを使用して新しいアプリを生成しましたが、2つのファイルが存在することがわかりました別の場所:
src/tsconfig.app.json
-> tsconfig.app.json
src/tsconfig.spec.json
-> tsconfig.spec.json
移行したプロジェクトに同様の変更を加え、angular.json
のこれらのファイルへの参照を更新し、tsconfig.app.json
とtsconfig.spec.json
の他のファイルへのポインターを修正しました
その結果、私のtsconfig.app.json
は次のようになります。
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": ["jest"]
},
"files": [
"src/main.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}
src
ディレクトリの下に配置されたすべてのd.ts
ファイルは自動的にプルされることに注意してください(tsconfig.json
のtypeRoots
セクションでの参照は必要ありません)
Angular 9ファイルに追加tsconfig.app.json
(src
フォルダーにあるため、*.d.ts
はapp
フォルダの下にあります):
"include": [
"app/**/*.d.ts"
]