在打字稿中創建物件實作介面的運算式可以寫成兩個陳述句(創建 回傳):
=>
{
const obj: IStudent = { Id: 1, name: 'Naveed' };
return obj;
}
是否可以在一個陳述句/運算式中完成此操作?
像這樣的東西,例如:
=> return (_: IStudent = { Id: 1, name: 'Naveed' })
uj5u.com熱心網友回復:
您不能在 return 陳述句中添加型別(有建議添加不同的型別斷言,允許檢查但不強制特定型別,如此處所述,但這還不是語言的一部分)。
但是,您可以向箭頭函式添加回傳型別:`(): IStudent => ({ Id: 1, name: 'Naveed' })
您還可以創建一個輔助函式來幫助創建此類物件:
function asType<T>(value: T) {
return value;
};
type IStudent = { Id: number, name: string}
let fn = () => asType<IStudent>({ Id: 1, name: 'Naveed' });
游樂場鏈接
注意:常規型別斷言(使用asor <>)將鍵入物件,但也可能允許意外錯誤(例如過多的屬性)溜走,盡管在某些情況下它可能仍然是一個不錯的選擇:
function asType<T>(value: T) {
return value;
};
type IStudent = { Id: number, name: string}
let fn = () => ({ Id: 1, name: 'Naveed', wops: "" }) as IStudent;
游樂場鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414465.html
標籤:
