簡體   English   中英

創建(實例化)聲明類型的打字稿對象

[英]creating (instantiate) a typescript object of declared type

Angular(6)路由器“ Params”對象聲明如下:

export declare type Params = {
    [key: string]: any;
};

實例化它是否是錯誤的? --

newParams = new Params();

比添加項目如下:

params.push({name: value});

皮查姆說我無法初始化自己的方式。 是Params類型還是某種其他需要處理的高級類型?

在使用Params類型alias的地方,它告訴您它是(或期望)帶有key | value對的對象文字,且值的類型為any

export declare type Params = {
    [key: string]: any;
};

它不是class ,所以您不能實例化它。 正式地,它稱為type alias ,其作用類似於接口而不是類,但是存在一些差異,例如不能由類實現

這並不是十分有用,因為每個對象都可以具有鍵|值對,但是在某些情況下,出於文檔目的,使用別名

ActivatedRoute文檔中,我們可以看到params Observable返回了Params類型的對象-因此我們知道將存在一些可以使用屬性訪問器括號表示的值route.snapshot.params["id"];

params  Observable<Params>  
An observable of the matrix parameters scoped to this route

猜猜它比這更復雜,但是簡單的答案是,只需使用一個空對象將其初始化,如下所示:

const params: Params = {};

從Angular開源中獲取它...有時最好的方法就是挖掘源代碼:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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