0

自从我从 Angular 中断 4 个月以来,我一直在做《英雄之旅》教程。一切都很顺利,直到我点击 http 部分。特别是 HttpClientInMemoryAPI 部分。从我发现的搜索来看,这听起来像是一个兼容性问题。我找到了这篇文章以及这篇文章,并尝试恢复到 0.5.4 版。我还尝试删除 node_modules 目录并执行 npm 安装(在运行安装之前,我确实确保 InMemAPI 的版本保持在 0.5.4)。我发现的大多数其他文章都是针对 Angular 2 的,所以我没有花太多时间尝试这些文章。我目前得到的错误是:

node_modules/angular-in-memory-web-api/http-backend.service.d.ts(2,75) 中的错误:错误 TS2307:找不到模块“@angular/http”。node_modules/angular-in-memory-web-api/http-backend.service.d.ts(3,10): error TS2305: Module '"C:/Development/Working/tour-of-heroes/node_modules/rxjs/ Observable"' 没有导出的成员 'Observable'。node_modules/angular-in-memory-web-api/http-client-backend.service.d.ts(2,10): error TS2305: Module '"C:/Development/Working/tour-of-heroes/node_modules/ rxjs/Observable"' 没有导出的成员 'Observable'。node_modules/angular-in-memory-web-api/http-in-memory-web-api.module.d.ts(2,28):错误 TS2307:找不到模块“@angular/http”。node_modules/angular-in-memory-web-api/interfaces.d.ts(1,10): error TS2305: Module ' "C:/Development/Working/tour-of-heroes/node_modules/rxjs/Observable"' 没有导出成员 'Observable'。node_modules/rxjs/Observable.d.ts(1,15):错误 TS2307:找不到模块“rxjs-compat/Observable”。

我希望我已经做了足够的研究,不要因为问这个问题而被激怒,如果不是,请至少给我一个好的网址,因为我在上面发布的 2 篇文章似乎是最相关和最近的。

谢谢大家,非常感谢您的帮助!

4

1 回答 1

0

如果可能,我不建议使用旧版本的库。你的目标是旧版本的 Angular 吗?

当前版本的 InMemoryWebAPI 以 Angular v7 为目标,因此如果您使用 Angular v7,则应使用当前版本的 InMemoryWebAPI (v0.7)

确认您的 package.json确实包含@angular/http. 这应该在您的应用程序创建时添加。我的 package.json 看起来像这样:

  "dependencies": {
    "@angular/animations": "~7.0.0",
    "@angular/common": "~7.0.0",
    "@angular/compiler": "~7.0.0",
    "@angular/core": "~7.0.0",
    "@angular/forms": "~7.0.0",
    "@angular/http": "~7.0.0",         // <-- This should be here already
    "@angular/platform-browser": "~7.0.0",
    "@angular/platform-browser-dynamic": "~7.0.0",
    "@angular/router": "~7.0.0",
    // ...

所以即使我们现在HttpClientModule在代码中使用:

import { HttpClientModule } from '@angular/common/http';

我们仍然拉入@angular/httppackage.json 文件。(如果您使用 Angular CLI,它应该已经为您提供了这个。)

于 2018-11-29T16:42:43.097 回答