在下面的代码中使用as
或<>
有什么区别?
选项A - 使用&#39;作为&#39;返回值
convertResultToParams(columnView:IColumnViewResult):IColumnViewParams {
const params = {};
Object.keys(this.getDefaultParams())
.map(key => params[key] = columnView[key]);
return params as IColumnViewParams;
}
选项B - 使用&#39;括号&#39;返回值
convertResultToParams(columnView:IColumnViewResult):IColumnViewParams {
const params = {};
Object.keys(this.getDefaultParams())
.map(key => params[key] = columnView[key]);
return <IColumnViewParams>params;
}
为什么我不能在变量声明中声明类型?
答案 0 :(得分:4)
您的界面可能包含所需的成员,因此初始化为{}
无效。如果您正在初始化它,可以将{}
转换为接口类型,并将很快添加字段。
const params = {} as IColumnViewParams
最初,Typescript使用<>
进行投射,但是添加了jsx支持后,这就成了一个问题,因此添加了as
投射操作符。铸造没有区别,只是你可以使用它们的上下文。 as
可以在任何地方使用,<>
无法在tsx中使用