簡體   English   中英

我們如何在打字稿中定義對象類型接口?

[英]How can we define object type interface in typescript?

我想用對象和不同類型定義接口,例如

export interface example {
   code: string;
   category : {
     name : string,
     reference: string,
     sequence : number
   };
}

在定義上,沒有問題,但是在調用

ex = {} as example;
ex.category.name ='electric; 

這不起作用,並且發生以下錯誤

錯誤錯誤:未捕獲(承諾):TypeError:無法設置未定義的屬性“名稱” TypeError:無法設置未定義的屬性“名稱”

有一些相似的主題,但它們並不完全相關。 如何在類型腳本界面中定義對象,或者如何在Typescript中定義對象變量的類型?

感謝您協助我們找到解決方案。

類型斷言並不意味着對象肯定具有您在運行時斷言的形狀。 您可以斷言任何類型的對象,但是如果您的運行時類型不匹配,最終它將在運行時失敗。

在您的示例中, ex對象沒有category屬性,因此它將在運行時undefined ,這會導致您出錯。

您也可以在對象中初始化category屬性:

var ex = {
    category: {} // or you can initialize `name` here as well
} as example;
ex.category.name = 'electric'; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM