Jus*_*tin 8 jasmine typescript angular
我正在将旧组件从 Typescript 6 更新到 8。我已经更新了 中的 Jasmine 依赖项package.json
,但现在出现错误:
“以下标识符的定义与另一个文件中的定义冲突:
ImplementationCallback、ExpectedRecursive、Expected、SpyObjMethodNames、CustomEqualityTester、CustomMatcherFactory、ExpectationFailed、SpecFunction、SpyObj、jasmine”。
两个冲突的文件如下:
@types/jasmine/index.d.ts
@types/jasmine/ts3.1/index.d.ts
Run Code Online (Sandbox Code Playgroud)
我已经尝试删除缓存以及删除 node_modules 和 package-lock 然后重新安装所有内容。我尝试删除其中一个文件并将另一个文件用作唯一的 index.d.ts 文件,但随后出现错误“找不到 'jasmine' 的类型定义文件。”
有没有人有其他建议?
小智 5
我实际上正在将一个 angular 6 应用程序迁移到 angular 8 并且遇到了与此处描述的相同的问题。我找到了一个适合我的替代解决方案。
将此标志添加到 tsconfig.json 对我有用:
“skipLibCheck”:真
文档内容为“跳过所有声明文件 (*.d.ts) 的类型检查”。对它一点都不满意,但是在我完成所有代码相关内容的迁移时它可以工作。
希望能帮助到你。
刚刚在这里回答了同样的问题:错误 TS6200:以下标识符的定义与另一个文件中的标识符冲突(@types/jasmine)
再次发布。如果这是错误的,请编辑/建议如何正确执行
从 Angular 6.x 迁移到 8.x(typescript 3.5+)时遇到了同样的问题,两个 @types/jasmine 类型文件(index.d.ts 和 3.1/index.d.ts)相互竞争通过以下方式解决了它:
1. 删除:
package.json 中的条目
"devDependencies": {
...
"@types/jasmine": "3.4.0",
"@types/jasminewd2": "2.0.6",
...
}
Run Code Online (Sandbox Code Playgroud)
2.改为添加:
文件夹和文件到 src 文件夹下的文件结构
src (folder)
...
@types
jasmine
index.d.ts (from node_modules/@types/jasmine/3.1/index.d.ts)
jasminewd2
index.d.ts (from node_modules/@types/jasminewd2/index.d.ts)
Run Code Online (Sandbox Code Playgroud)
3.更改配置:
tsconfig.json(其中 XXX 对应于您的文件夹结构)
...
"typeRoots": [
...
"src/ XXX /@types"
]
...
Run Code Online (Sandbox Code Playgroud)
tsconfig.spec.json
...
"types": [
...
"jasminewd2"
]
...
Run Code Online (Sandbox Code Playgroud)
4.重新安装库
跑步npm install
npm install @types/jasmine --save-dev
npm install @types/jasminewd2 --save-dev
由于在互联网上搜索仅显示 2 个类似的投诉,因此假设很接近,即上述解决方案只是一种解决方案,但必须有更好的解决方案(否则会有更多人抱怨该问题)。角度项目的配置中可能存在无法识别的错误,这可能会导致在“我们使用 3.1 以下的打字稿”和“我们使用 3.1 以上的打字稿”之间做出决定@types/jasmine 中不可能。
归档时间: |
|
查看次数: |
5957 次 |
最近记录: |