以下是官方演示代码片段:
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