我的tsconfig.json
是
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"module": "es6",
"target": "es5",
"jsx": "react",
"allowJs": true,
"preserveConstEnums": true,
"removeComments": true,
"noImplicitAny": false,
"moduleResolution": "node",
"noUnusedParameters": true
},
"include": [
"./src/**/*"
],
"exclude": [
"node_modules",
"@typings",
"typings/main",
"typings/main.d.ts",
"typings/index.d.ts"
],
"paths": {
"react": ["node_modules/@types/react"]
}
}
我已将karma-typescript
添加到我的配置
settings.frameworks.push('karma-typescript');
settings.preprocessors['test-bundler.js'].unshift('karma-typescript');
settings.karmaTypescriptConfig = {
tsconfig: './tsconfig.json',
};
使用webpack,开发服务器和编译工作正常。
这是一个虚拟测试
describe('Root', () => {
it('should pass', () => {
console.log('done');
});
});
运行测试时,我得到了
node_modules/@types/react/index.d.ts(2736,19):错误TS2320:接口 'ElementClass'不能同时扩展类型'Component'和'Component'。命名属性'道具'的类型 “组件”和“组件”不相同。
与那些相似。如果我删除settings.preprocessors['test-bundler.js'].unshift('karma-typescript');
,那么测试运行正常(但是当我开始导入源文件时,我无法预编译打字稿。
发生了什么事?我的正常构建和开发服务器运行正常tsconfig.json
我有
答案 0 :(得分:0)
发生了什么
编译上下文中有两个react.d.ts
。
再次删除node_modules
和任何package-lock
(或纱线锁定)和npm install
。
如果不起作用,请找到无效模块(所有模块都应该react.d.ts
为peerDependency
而不是硬dependency
)并在项目中报告。