web-dev-qa-db-ja.com

Angular 9にアップグレードした後、タイピングファイルで変数が見つかりません

私はタイピングファイルで定義した外部ロギングコンポーネント(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
}
8
jazza1000

私は作者とまったく同じ問題を抱えていました-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.jsontsconfig.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.jsontypeRootsセクションでの参照は必要ありません)

2
Lesiak

Angular 9ファイルに追加tsconfig.app.jsonsrcフォルダーにあるため、*.d.tsappフォルダの下にあります):

  "include": [
      "app/**/*.d.ts"
  ]
0
Cyclion