我有一个对外部日志组件的引用(在 js 文件中引用),我在typings 文件中定义了它
打字.d.ts
declare var LogglyTracker;
Run Code Online (Sandbox Code Playgroud)
我已将 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
}
Run Code Online (Sandbox Code Playgroud)
Cur*_*rse 12
从Angular 7迁移到Angular 9后遇到了同样的问题。
我个人只需要在tsconfig.app.json
.
之前:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [
"node"
]
},
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
之后:
{
"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
]
}
Run Code Online (Sandbox Code Playgroud)
我假设您tsconfig.json
在迁移到 Angular 9 之前已经进行了更改。如果没有,这里是:
{
...
"compilerOptions": {
...
"typeRoots": [
"node_modules/@types",
"src/typings.d.ts"
],
...
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,解决方案是将以下内容添加到服务文件的顶部:
/// <reference path="../../typings.d.ts" />
Run Code Online (Sandbox Code Playgroud)
引用显然是将类型定义导入代码的另一种方法,更多信息请参见此处
归档时间: |
|
查看次数: |
4396 次 |
最近记录: |