当前位置: 首页 > 知识库问答 >
问题:

如何在typescript中定义对象类型接口?

洪涵亮
2023-03-14

我想定义一个带有对象和不同类型的接口,例如

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

在定义上,没有问题,但在调用like后

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

这不起作用,并出现以下错误

错误错误:未捕获(promise中):TypeError:无法设置未定义的属性“名称”TypeError:无法设置未定义的属性“名称”

有一些相似的主题,但它们并不完全相关。(如何在类型脚本接口中定义对象或者如何在类型脚本中定义对象变量的类型?)

我很感激你帮助我找到解决办法。

共有1个答案

东郭展
2023-03-14

类型断言并不意味着对象一定是您在运行时断言的形状。您可以断言任何对象都是任何类型的,但如果您的运行时类型不匹配,最终它将在运行时失败。

在您的示例中,ex 对象没有类别属性,因此它将在运行时未定义,从而导致您的错误。

您也可以在对象中初始化类别属性:

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