Angular 2 - 强制API返回以跟随接口类型

时间:2017-10-19 11:09:22

标签: angular typescript interface casting

我有这个组件:

export class myComponent implements OnInit {
    items: Array<ItemInterface>;

    constructor( private itemsService: ItemsService ) { }

    ngOnInit() {
        this.itemsService.getAll()
            .subscribe(
                response => {
                    this.items = response.data;
                    console.log(this.items);
                },
                err => {
                    console.log(err);
                });
    }
}

ItemInterface:

export interface ItemInterface {
  id: number;
  name: string;
}

我调用的API将id返回为字符串(例如&#34; 1&#34;)。我想把它们作为数字。是否可以强制类型相对于接口定义进行转换?我该怎么办?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您必须使用map转换类型。您可以使用+将字符串转换为数字。如果你愿意,你可以在地图中指定类型,虽然我认为在最新版本的typescript中没有必要,因为接口和返回类型之间的属性匹配。

this.items = response.data
    .map(itm => {
        return {id: +itm.id, name: itm.name} as ItemInterface;
    });