繁体   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