簡體   English   中英

TypeScript類和接口

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

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