我的目标是开玩笑地在Angular应用程序中运行单元测试,而不会得到:
error TS2304: Cannot find name 'twemoji'
Twemoji已添加到项目package.json
和angular.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。我似乎出现了一些不一致的行为,因为有时它看起来可行吗?期待解决方案/说明:)
答案 0 :(得分:2)
想法:
src/typings.d.ts
应该有效。它是否包含在编译过程中?它是否在您的测试tsconfig files
或include
部分中列出?您可以运行tsc --project=tsconfig.spec.json --outDir=output --listFiles
typings.d.ts
中的代码更改为此: declare module 'twemoji' {
export function parse(str: string, options?: { folder: string; ext: string }): string;
}