[英]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.