[英]TypeScript classes and interfaces
我有以下打字稿代码:
export class Parent {
name: string;
details: Details = {};
}
export interface Details {
age?: number;
address?: Address};
}
export interface Address {
address1: string;
address2: string;
}
然后,我可以参考此代码来设置一些值:
var myOptions = new HSCIC.Visualisation.Services.Parent();
myOptions.name = "Chris";
myOptions.details.age = 25;
myOptions.details.address.address1 = "10 The Lane";
前两个设置器工作正常,但是我得到的“无法设置属性'address1'为'undefined'。
如果可以从“详细信息”中设置age属性,那么为什么不能设置Address的address1属性,如何解决呢?
因为您写道:
address?: Address};
但是,要使代码有效,应为:
address?: Address = {address1: null, address2: null};
您需要为地址分配一个值,就像您在details: Details = {};
所做的一样details: Details = {};
,否则它将是未定义的。 为此,需要将Details定义为一个类,而不是一个接口。 编写: Address
不会实例化新类,它仅指定类型。 另外,您可以像使用地址一样将address1和2设为可选?
,然后只写address?: Address = {};
如果您不想将Details定义为一个类,则可以编写details: Details = {address:{}};
在父项下
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.