在安装@types/jest
之后立即检测到了相应的打字稿定义,而单独使用jest。
然后我开始与cypress进行集成测试。由于cypress使用的是mocha,因此我现在在我的jest测试中错误地看到了mocha类型定义的引用。实际上,检测到许多重叠的类型定义。例如,describe
似乎是在许多文件中定义的。我什至尝试实现自己为describe
指向笑话的类型。不幸的是,每一次 mocha “都赢了”。
当打字稿编译器检测到多个定义时,如何指定优先顺序?
我的tsconfig.json
如下:
{
"compilerOptions": {
"target": "es5",
"lib": [ "dom", "dom.iterable", "esnext" ],
"types": [ "jest", "mocha" ],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"noEmit": true,
"jsx": "preserve"
},
"include": [ "src/**/*" ]
}
但是,我也尝试了以下方法:
{
"compilerOptions": {
"target": "es5",
"lib": [ "dom", "dom.iterable", "esnext" ],
"typeRoots": [ "./node_modules/@types", "./src/types" ],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"noEmit": true,
"jsx": "preserve"
},
"include": [ "src/**/*" ]
}
在两种情况下都选择了 mocha 。如何切换“描述与合作”的类型。要开玩笑?
答案 0 :(得分:0)
CompilerOptions.types允许您限制希望在范围(文件夹)中可用的类型
您可以尝试以下操作: 使用以下命令创建顶级tsconfig.json CompilerOptions.types = []
在测试文件夹内创建tsconfig.json并选择笑话类型 CompilerOptions.types = ['jest']
类似地,在集成文件夹中,创建tsconfig.json并选择摩卡类型 CompilerOptions.types = ['mocha']