以下是官方演示代码片段:

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

我的问题是ngOnChanges的参数。
changes是参数,在符号:之后,是类型注释。
我对{[propKey: string]: SimpleChange}感到困惑。
它看起来不像是一个解构,也不像opt: {key: string}

最佳答案

它建议,如果属性(键)的类型是string,那么它将返回simplechanges类型的对象。这是与字体有关的东西,而不是与角度有关。
让我们深入了解一些细节:
假设changes对象有类似这样的{name: SimpleChange, age: SimpleChange}。那么这个类型验证意味着如果您传递了字符串中的键,
假设"minor"则返回simpleChange对象。

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

此外,如果你想跳过这个,你可以。唯一的区别是类型转换和验证。
您也可以将其用作参考:
 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}`);
     }
}

有关详细信息,try this

09-25 18:46