Угловой компилятор не может найти jasmine.CustomMatchers, даже если он находится в @ types / jasmine - PullRequest
0 голосов
/ 17 января 2019

Я только что скачал пример проекта тестирования с Angular guide : https://angular.io/generated/zips/testing/testing.zip

Когда я делаю ng serve Я получаю ошибки:

src/testing/jasmine-matchers.d.ts(3,67): error TS2694: Namespace 'jasmine' has no exported member 'CustomMatcher'.

Я довольно новичок в Angular. Может ли кто-нибудь помочь мне понять, в чем дело?

Я выполнил npm install, и когда я захожу в node_modules / @ types / jasmine, я вижу, что CustomMatchers определены в index.d.ts

Угловой 7

Машинопись 3.0

"@types/jasmine": "^2.8.14",
"@types/jasminewd2": "^2.0.4",
"@types/node": "~8.9.4",
"jasmine-core": "~2.99.1",
"jasmine-marbles": "^0.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.0.0",

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

У меня есть node и npm версия, как показано ниже:

node --version
v10.15.3

npm --version
6.9.0

Я получил ошибку, как показано ниже:

ERROR in src/app/model/testing/index.ts(1,15): error TS2307: Cannot find module './fake-hero.service'.
src/testing/jasmine-matchers.d.ts(3,67): error TS2694: Namespace 'jasmine' has no exported member 'CustomMatcher'.
src/testing/jasmine-matchers.ts(7,3): error TS2708: Cannot use namespace 'jasmine' as a value.
src/testing/jasmine-matchers.ts(12,32): error TS2694: Namespace 'jasmine' has no exported member 'CustomMatcher'.
src/testing/jasmine-matchers.ts(14,97): error TS2694: Namespace 'jasmine' has no exported member 'CustomMatcherResult'.

Комментирование строки, как показано ниже из файла src/app/model/testing/index.ts, исправило проблему.

//export * from './fake-hero.service';

Кажется, что также есть ошибки, связанные с jasmine и CustomMatcher. Но это не так.

Интересно, что когда я остановил сервер и перезапустился с помощью ng serve, я снова получил ошибку jasmin. Но когда я отредактировал вышеупомянутый файл (index.ts), просто поставив пробел в строке комментария, он успешно скомпилирован!

Вот мои devDependencies:

"devDependencies": {
  "@angular-devkit/build-angular": "^0.11.0",
  "@angular/cli": "^7.1.0",
  "@angular/compiler-cli": "^7.1.0",
  "@angular/platform-server": "^7.1.0",
  "@types/jasmine": "~2.8.8",
  "@types/jasminewd2": "^2.0.4",
  "@types/node": "~8.9.4",
  "jasmine-core": "~2.99.1",
  "jasmine-marbles": "^0.4.0",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "~3.0.0",
  "karma-chrome-launcher": "~2.2.0",
  "karma-coverage-istanbul-reporter": "~2.0.1",
  "karma-jasmine": "~1.1.2",
  "karma-jasmine-html-reporter": "^0.2.2",
  "lodash": "^4.16.2",
  "protractor": "~5.4.0",
  "ts-node": "~7.0.0",
  "tslint": "~5.11.0",
  "typescript": "~3.1.1"
}
0 голосов
/ 19 января 2019

Оказывается, что ошибки вызваны несовместимыми версиями пакетов Typescript и @ types / jasmine.Должны работать следующие версии:

Angular CLI: 6.2.9
Node: 10.11.0
OS: darwin x64
Angular: 6.1.10
typescript                        2.7.2
"@types/jasmine": "2.8.9"

Чтобы установить правильные версии, выполните следующие действия:

удалите package-lock.json и node_modules /, затем npm cache clean --force и npm install

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...