首页 > 解决方案 > 类型 Program[] 不可分配给 string[]

问题描述

我有下面的课。我想做的是过滤活动程序和非活动程序,然后为这些程序获取程序名称,作为字符串数组。

这是程序类:

export class Program {
  ID: number;
  ProgramDescription: string;
  ProgramName: string;
  ProgramStatus: string;
  FiscalYear: string;
  SupervisorID: string;
  DBN: string;
  IsActive: string;
}

以下是我在服务中编写的方法:

getPrograms(): Observable<Program[]> {
return this.httpClient.get<Program[]>(environment.apiBaseURL + 'api/Program')
               .pipe(
                 map(data => data)
               );
}

getActivePrograms(): Observable<Program[]> {
return this.getPrograms()
           .pipe(
             map(data => data.filter(program => program.IsActive === 'Y'))
           );
}

getActiveProgramNames(): Observable<string[]> {
return this.getActivePrograms()
           .pipe(
             map(data => data.filter(program => program.ProgramName.toString())
           );
}

在 getActiveProgramNames() 中,我收到以下错误:

Type Program[] is not assignable to type string[]

标签: angulartypescriptangular6

解决方案


尝试map

getActiveProgramNames(): Observable<string[]> {
    return this.getActivePrograms()
       .pipe(
         map(data => data.map(program => program.ProgramName.toString())
       );
    }

推荐阅读