首页 > 解决方案 > 错误 TS2305:模块 @types/angular 没有导出的成员“cookies”

问题描述

我遇到了未在角度范围内定义 cookie 的问题。

npm run start构建和启动应用程序就好了,但是当尝试运行npm test执行jest命令时,我收到了这个错误:

`测试套件无法运行 app/components/Component1/Component1.ts:1:10

  • 错误 TS2305:模块 '"../../../../../node_modules/@types/angular"' 没有导出的成员 'cookies'。`

里面有Component1.ts这个导入:import { cookies } from 'angular';

构建并运行 - 好的。测试 - 不行。

如果您知道问题可以隐藏在哪里,请帮助:) 谢谢。

我的 package.json:

{
  "dependencies": {
    ...,
    "angular": "^1.8.0",
    "angular-cookies": "1.8.0",
    "babel-polyfill": "^6.2.0",
    ...
  },
  "devDependencies": {
    "@types/angular": "^1.8.0",
    "@types/angular-cookies": "^1.8.0",
    "@types/jest": "^26.0.19",
    "angular-mock": "^1.0.0",
    "angular-mocks": "^1.8.2",
    "angularjs-jest": "^0.1.4",
    "babel-core": "^6.24.1",
    "babel-loader": "^7.0.0",
    "jest": "^26.6.3",
    "ts-jest": "^26.4.4",
    ...
  }
}

标签: javascriptangulartestingcookiesjestjs

解决方案


我的问题的解决方案是添加angular-cookiestsconfig.test.json文件中。我仍然不明白为什么angular-cookies因为源代码和生产构建从angular包中获取类型和定义(并且通过 IDE 我可以链接到角度模块而不是 angular-cookies)。但这就是生活的全部 - 奥秘。

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "types": [
      "node",
      "jest",
      "angular-cookies" --> THIS VERY LINE SOLVED MY ISSUE
    ]
  },
  "include": [
    "index.d.ts",
    "**/*.test.ts"
  ]
}


推荐阅读