有时我可以看到一些代码像这样处理http响应:
f(): Observable<Hero[]> {
return this.http.get('local.host').map((response: Response) => response.json().data as Hero[]);
}
和Hero是
export class Hero {
id: number;
name: string;
}
是什么
r.json().data as Hero[]
意思?
但据我所知,现在没有直接函数将json对象转换为ts对象,关键字“as”用于将json对象转换为自定义ts对象吗?如果是的话,我可以写
var myClass=r.json() as MyClass;
if(!myClass){
//error
}
检查json对象是否可以转换为我的自定义类?
答案 0 :(得分:3)
r.json().data as Hero[]
来自Server的响应。期望List of Object从服务器返回。 这段代码只是类型转换。
它会将该列表转换为Hero Object数组。 服务器以 json格式
返回值答案 1 :(得分:2)
正如@HarryNinh所说
TypeScript 1.6引入了新的.tsx文件扩展名。这个扩展做了两件事:它在TypeScript文件中启用JSX,它使new as运算符成为转换的默认方式(消除JSX表达式和TypeScript前缀强制转换操作符之间的任何歧义)。例如:
var x = <any> foo;
// is equivalent to:
var x = foo as any;