4

我的目标是在我的 Angular 应用程序中开玩笑地运行单元测试,而不是:

error TS2304: Cannot find name 'twemoji'

Twemoji已添加到项目package.jsonangular.json文件、脚本部分。它在运行和构建应用程序时运行良好,但在运行单元测试时失败并出现上述错误。

我试过的

我尝试将以下内容添加到我的src/jestGlobalMocks.ts文件中:

declare var twemoji: {
    parse(str: string, options?: { folder: string; ext: string }): string;
};
Object.defineProperty(window, 'twemoji', {
    value: {
        parse: str => str,
    },
});

src/typings.d.ts

declare var twemoji: {
    parse(str: string, options?: { folder: string; ext: string }): string;
};

但这似乎并没有解决问题,因为我仍然收到错误 TS2304。我似乎有一些不一致的行为,因为它有时似乎有效?期待解决方案/解释:)

4

1 回答 1

2

想法:

  1. 尝试为 twemoji 安装类型
  2. 基本上src/typings.d.ts应该工作。它是否包含在编译过程中?它是否列在您的测试 tsconfigfilesinclude部分中?您可以检查它是否正在运行tsc --project=tsconfig.spec.json --outDir=output --listFiles
  3. 尝试将代码更改为typings.d.ts
    declare module 'twemoji' {
      export function parse(str: string, options?: { folder: string; ext: string }): string;
    }
于 2019-11-28T11:26:03.873 回答