以下是官方演示代码段:
ngOnChanges(changes: {[propKey: string]: SimpleChange}) {}
我的问题是ngOnChanges
的参数。
changes
是符号:
之后的参数,是类型注释。
我对{[propKey: string]: SimpleChange}
感到困惑。
它似乎不像解构而不像opt: {key: string}
。
答案 0 :(得分:3)
它表明,如果您的属性(键)的类型为 string ,则它将返回 SimpleChanges 类型的对象。这与打字稿相关,而不是与角色有关。
让我们深入了解一些细节: -
让我们说更改对象有类似{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
答案 1 :(得分:0)
{[propKey: string]: SimpleChange}
是将SimpleChange
个对象和propKey
数组描述为字符串索引(字典)的接口。
所以更改:{[propKey: string]: SimpleChange}
是一个SimpleChange
对象和propKey
字符串索引的数组