类型'Alias []'与类型'Alias'没有共同的属性

时间:2019-12-04 09:28:31

标签: node.js angular typescript express

我收到一个错误:

  

类型'Alias []'与类型'Alias'没有共同的属性

这是我的别名

  alias: Alias = {
    id: 0,
    domain_id: 0,
    source: '',
    destination: ''
  };

这是我的Alias模型

export interface Alias {
    id?: number;
    domain_id?: number;
    source?: string;
    destination?: string;
}

我在这符合this.alias = res

的地方出错
  ngOnInit() {
    const params = this.activedRoute.snapshot.params.id;
    console.log('parms '+params);
    if (params.id) {
      this.aliasesService.getAlias(params.id).subscribe(
        res => {
          this.alias = res;
          this.edit = true;
        },
        err => console.error(err)
      );
    }
  }

这是我的服务

getAlias(id: string): Observable<Alias[]> {
    return this.http.get<Alias[]>(`${this.API_URI}/aliases/${id}`);
  }

我该如何解决?

1 个答案:

答案 0 :(得分:2)

更改此:

getAlias(id: string): Observable<Alias[]> {
  return this.http.get<Alias[]>(`${this.API_URI}/aliases/${id}`);
}

对此:

//I guess this api returns a single Alias
getAlias(id: string): Observable<Alias> {
  return this.http.get<Alias>(`${this.API_URI}/aliases/${id}`);
}

编辑:

顺便说一下,您可以像这样简化代码

发件人:

alias: Alias = {
  id: 0,
  domain_id: 0,
  source: '',
  destination: ''
};

收件人:

alias: Alias = {} as Alias; //it's the same thing