1

带有打字稿的Angular版本6 Raygun设置问题

错误:

src/app/app.raygun.setup.ts(6,20) 中的错误:错误 TS2304:找不到名称“RaygunV2”。

它似乎不喜欢这一行: declare let rg4js: RaygunV2;

我为 raygun 安装了这些 npms:

@types/raygun4js:“^2.6.0 和 raygun4j”:“^2.10.0

app.raygun.setup 文件:

import * as rg4js from 'raygun4js';
import { ErrorHandler } from '@angular/core';

import { environment } from '@env/environment';

declare let rg4js: RaygunV2;

rg4js('apiKey', '9bimuASis2Cyjx/mrKTmeQ==');
rg4js('setVersion', '1.0.0.0');
rg4js('enableCrashReporting', environment.raygun.isActive);

export class RaygunErrorHandler implements ErrorHandler {
  handleError(e: any) {
    rg4js('send', { error: e });
  }
}

应用程序模块:

 providers: [
    { provide: ErrorHandler, useClass: RaygunErrorHandler }
 ],
4

1 回答 1

2

这是因为由于疏忽,我们实际上并未将RaygunV2对象导出为类型定义的一部分。这将在 Raygun4JS 的下一个版本中修复(没有 ETA)。现在,你能做的最好的就是将变量声明为any.

旁注:我没有看到您尝试导入RaygunV2类型,当我们最终从类型定义中导出类型时,您将不得不这样做。

编辑(25/10/18):这仍然没有得到正确解决,但您可以使用以下代码段作为解决方法

import { RaygunV2 } from 'raygun4js';
const rgj4s: RaygunV2 = require('raygun4js');
于 2018-06-20T20:11:28.653 回答