当前位置: 首页 > 知识库问答 >
问题:

Angular 2 beta.17:属性映射不存在于类型'观察'

崔恺
2023-03-14

我刚刚从Angular 2 beta16升级到beta17,这反过来需要rxjs 5.0。0-β。6.(此处的更改日志:https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28)在beta16中,关于可观测/地图功能,所有功能都运行良好。以下错误在我升级后出现,并在typescript尝试传输时发生:

  1. 属性“map”不存在于类型“Observable”(我将map与Observable一起使用的任何地方)
  2. c:/path/node_modules/rxjs/add/operator/map。d、 ts(2,16):错误TS2435:环境模块不能嵌套在其他模块或命名空间中
  3. c:/path/node_modules/rxjs/add/operator/map。d、 ts(2,16):错误TS2436:环境模块声明无法指定相对模块名称

我见过这个问题/答案,但它不能解决问题:Angular2 beta.12和RxJs 5 beta.3的可观察错误

我的应用程序启动。ts看起来像这样(我已经在引用rxjs/map):

///<reference path="./../node_modules/angular2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {ROUTER_PROVIDERS} from 'angular2/router';
import {HTTP_PROVIDERS} from 'angular2/http';
[stuff]
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import {enableProdMode} from 'angular2/core';
import { Title } from 'angular2/platform/browser';


//enableProdMode();
bootstrap(AppDesktopComponent, [
    ROUTER_PROVIDERS,
    HTTP_PROVIDERS,
    Title
]);

有人知道怎么回事吗?

共有3个答案

罗昊明
2023-03-14

rxjs 5.5"属性'map'在可观察类型上不存在。

问题与需要在所有操作符周围添加管道有关。

改变这个,

this.myObservable().map(data => {})

对此

this.myObservable().pipe(map(data => {}))

而且

像这样导入地图,

import { map } from 'rxjs/operators';

它会解决你的问题。

宇文鸿畴
2023-03-14

我将GulpTypeScript插件升级到最新版本(2.13.0),现在它可以顺利编译。

更新1:我之前使用的是2.12.0版的GALP-打字稿

更新2:如果您正在升级到Angular 2.0.0-rc.1,您需要在appBoot.ts文件中执行以下操作:

///<reference path="./../typings/browser/ambient/es6-shim/index.d.ts"/>
import { bootstrap } from "@angular/platform-browser-dynamic";
import { ROUTER_PROVIDERS } from '@angular/router-deprecated';
import { HTTP_PROVIDERS } from '@angular/http';
import { AppComponent } from "./path/AppComponent";
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
// import 'rxjs/Rx'; this will load all features
import { enableProdMode } from '@angular/core';
import { Title } from '@angular/platform-browser';



//enableProdMode();
bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    HTTP_PROVIDERS,
    Title
]);

重要的是参考es6垫片/索引。d、 ts

有关打字的更多信息,请从此处安装:https://angular.io/docs/ts/latest/guide/typescript-configuration.html#!#打字

锺离良哲
2023-03-14

您需要导入map操作符

import 'rxjs/add/operator/map'
 类似资料:
  • 我想使用以下代码实现文件下载: RestAPI: 服务: 组件: 当我启动angular时,我得到错误:src/app/panel/service/download中的错误。服务ts(17,91):错误TS2339:类型“Observable”上不存在属性“map”。 将导入代码的正确wya是什么?当我点击下载按钮时,什么也没发生。

  • 我是个新手。目前我正在学习6个特征。当我试图处理错误时,会出现如下问题:, 未找到模块:错误:无法解析“D:\WORKSPACE\Angular5\binding\src\app”中的“rxjs/add/observable/throw” 找不到模块:错误:无法解决'D:\WORKSPACE\Angular5\绑定\src\app'中的'rxjs/add/操作员/捕获' src/app/emplo

  • 我需要在Nativescript中从web服务获取所有警报。但是地图不起作用。我试过这个函数。在Angular 5中工作正常,但在Nativescript中显示此错误: [ts]类型“Observable”上不存在属性“map”。在这方面。映射((响应:响应)= 我导入这个:

  • 我刚刚开始使用Angular2,我有一个我不能真正理解的问题。 我创建了一些模拟数据: 然后将其导入服务并“观察” 然后我有一个组件,在构造函数中: 第一个控制台。日志记录包含testDataArray属性的Object类型的对象。 第二个控制台。日志,在编译时导致错误: 同时仍按预期记录对象[Object, Object,...]的数组。 我真的不明白为什么,我肯定我做错了什么,我想要一个解释。

  • 我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。

  • 我试图在登录过程后获得连接的用户模型, 首先,在CanActivate guard检查了带有用户JSON对象的本地存储并发现该对象为空之后,用户将重定向到“/login”URL 然后用户登录并重定向回根URL“/”,在连接过程中我使用AuthService,它将从服务器返回的用户对象保存在用户模型中 这是我的守卫: