簡體   English   中英

angular4.x,ngOnChanges方法的參數

[英]angular4.x, parameter of ngOnChanges method

這是一個官方的演示代碼片段:

ngOnChanges(changes: {[propKey: string]: SimpleChange}) {}

我的問題是ngOnChanges的參數。

changes是符號:之后的參數,是類型注釋。

我對{[propKey: string]: SimpleChange}感到困惑。

它似乎不像解構而不像opt: {key: string}

它表明如果你的屬性(key)是string類型,那么它將返回一個SimpleChanges類型的對象。 這與打字稿相關,而不是角度。

讓我們深入了解一些細節: -

假設更改對象具有類似{name: SimpleChange, age: SimpleChange} 然后這種類型驗證意味着如果您在字符串中傳遞鍵,說"minor"那么它將返回SimpleChange的對象。

let updatedNameChanges  = changes["name"]; 
// name is in string, so updatedNameChanges will be a SimpleChange object.

此外,如果你想跳過這個,你可以。 唯一的區別是類型轉換和驗證。

您也可以將其用作ref:

 ngOnChanges(changes: {[propKey: string]: SimpleChange}) {
   let log:string[] = [];
   for (let propName in changes) {
     let changedProp = changes[propName];
     let to = JSON.stringify(changedProp.currentValue);
     if (changedProp.isFirstChange()) {
       log.push(`Initial value of ${propName} set to ${to}`);
     } else {
       let from = JSON.stringify(changedProp.previousValue);
       log.push(`${propName} changed from ${from} to ${to}`);
     }
}

有關詳細信息,請嘗試此操作

{[propKey: string]: SimpleChange}是描述SimpleChange對象數組的接口, propKey是字符串索引(字典)。

所以更改: {[propKey: string]: SimpleChange}SimpleChange對象和propKey字符串索引的數組

暫無
暫無

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

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