I have a reference to an external logging component (referenced in a js file), which I have defined in a typings file
typings.d.ts
declare var LogglyTracker;
I have upgraded my angular application from version 8 to 9, and now when I run ng build, I get the following error
ERROR in src/app/error/loggly.service.ts:13:29 - error TS2304: Cannot find name 'LogglyTracker'.
Does anyone know what the recommended way to fix this problem is? This code worked fine in Angular 8.
@Injectable()
export class LogglyLoggerService {
// https://github.com/loggly/loggly-jslogger
private loggly: any = new LogglyTracker(); //!! Error here
}
Had the same problem after migrating from Angular 7 to Angular 9.
I personally just had to add one line in tsconfig.app.json.
Before:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [
"node"
]
},
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}
After:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [
"node"
]
},
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts",
"typings.d.ts" // add this line
]
}
I assumed you already made changes in tsconfig.json before migrating to Angular 9. If not, here it is:
{
...
"compilerOptions": {
...
"typeRoots": [
"node_modules/@types",
"src/typings.d.ts"
],
...
}
}
I had exactly the same problem as the author - after upgrade to Angular 9, my local type definitions were no longer found.
In Angular 8, I added references to them in tsconfig.json
"typeRoots": [
"node_modules/@types",
"../src/typings/my-lib/index.d.ts"
"node_modules/@types"
]
After upgrading to Angular 9, my-lib was no longer found.
I generated a new app using Angular 9 CLI, and found that 2 files reside in different locations:
src/tsconfig.app.json -> tsconfig.app.json
src/tsconfig.spec.json -> tsconfig.spec.json
I made similar change in my migrated project, updated references to these files in angular.json, and corrected pointers to other files in tsconfig.app.json and tsconfig.spec.json
As a result, my tsconfig.app.json looks like:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": ["jest"]
},
"files": [
"src/main.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}
Note that all d.ts files placed under src directory will be pulled in automatically (no reference in typeRoots section of tsconfig.json is necesssary)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With