Angular 4错误:类型'()=> any’中缺少属性’includes’
发布时间:2020-12-17 07:18:11 所属栏目:安全 来源:网络整理
导读:我在使用angular 4和observable时遇到错误. /Users//backend/src/app/app.component.ts(15,55):输入'()=任何’不能分配给’State []’. /Users//backend/src/app/app.component.ts(15,55):输入'()=任何’不能分配给’State []’. ‘()=类型中缺少属性’inc
我在使用angular 4和observable时遇到错误.
/Users//backend/src/app/app.component.ts(15,55):输入'()=>任何’不能分配给’State []’. 我究竟做错了什么 我的模特 export class State { id: number; state: string; code: string; } 我的服务 import { Injectable } from '@angular/core'; import { Http,Response } from '@angular/http'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/do'; import 'rxjs/add/operator/toPromise'; import {environment} from '../../../environments/environment'; @Injectable() export class StateService { private baseUrl: string = environment.baseUrl; constructor( private http: Http) {} /** * Get all States */ GetStates() { return this.http.get(this.baseUrl + 'v1/states') .map((res: Response) => res.json); // .do( data => console.log(data)); } } 我的组件 import { Component,OnInit } from '@angular/core'; import {StateService} from './shared/services/state.service'; import {State} from './shared/models/state'; @Component({ selector: 'app-root',templateUrl: './app.component.html',styles: [] }) export class AppComponent implements OnInit { states: State[] ; constructor(private stateService: StateService) {} ngOnInit() { this.stateService.GetStates().subscribe(states => this.states = states ); } } App.Module import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import 'rxjs/add/operator/map'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { StateService } from './shared/services/state.service'; @NgModule({ declarations: [ AppComponent ],imports: [ BrowserModule,FormsModule,HttpModule,AppRoutingModule ],providers: [ StateService ],bootstrap: [AppComponent] }) export class AppModule { }
有两个问题.
首先,您不是在调用json响应,而只是引用该方法.您需要将res.json更改为res.json(): .map((res: Response) => res.json()); 其次,您没有声明订阅结果的类型.您应该明确指定结果的类型: this.stateService.GetStates().subscribe((states: State[]) => this.states = states); 由于您订阅的参数是any类型,除非您像上面一样预先指定类型,或者在赋值之前将其强制转换,否则typescript编译器会告诉您类型无效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |