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