J'ai une référence à un composant de journalisation externe (référencé dans un fichier js), que j'ai défini dans un fichier de typages
typings.d.ts
declare var LogglyTracker;
J'ai mis à jour mon angular application de la version 8 à 9, et maintenant, lorsque je lance ng build, j'obtiens l'erreur suivante
ERREUR dans src/app/error/loggly.service.ts: 13: 29 - erreur TS2304: Impossible de trouver le nom "LogglyTracker".
Quelqu'un sait-il quelle est la méthode recommandée pour résoudre ce problème? Ce code fonctionnait bien dans Angular 8.
@Injectable()
export class LogglyLoggerService {
// https://github.com/loggly/loggly-jslogger
private loggly: any = new LogglyTracker(); //!! Error here
}
J'ai eu exactement le même problème que l'auteur - après la mise à niveau vers Angular 9, mes définitions de type locales n'étaient plus trouvées.
Dans Angular 8, j'ai ajouté des références à eux dans tsconfig.json
"typeRoots": [
"node_modules/@types",
"../src/typings/my-lib/index.d.ts"
"node_modules/@types"
]
Après la mise à niveau vers Angular 9, my-lib
n'a plus été trouvé. J'ai généré une nouvelle application en utilisant Angular 9 CLI, et j'ai trouvé que 2 fichiers résident à des emplacements différents:
src/tsconfig.app.json
-> tsconfig.app.json
src/tsconfig.spec.json
-> tsconfig.spec.json
J'ai effectué une modification similaire dans mon projet migré, mis à jour les références à ces fichiers dans angular.json
et corrigé des pointeurs vers d'autres fichiers dans tsconfig.app.json
et tsconfig.spec.json
En conséquence, mon tsconfig.app.json
ressemble à:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": ["jest"]
},
"files": [
"src/main.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}
Notez que tout d.ts
les fichiers placés sous le répertoire src
seront automatiquement extraits (aucune référence dans la section typeRoots
de tsconfig.json
est nécessaire)
Dans Angular 9 ajouter au fichier tsconfig.app.json
(car il réside dans le dossier src
, donc *.d.ts
sont sous le dossier app
):
"include": [
"app/**/*.d.ts"
]