如果我们在ngOnChanges钩子(Hook)的SimpleChanges typescript 参数中进行当前组件的类型检查,那就太好了。
这样可以防止我们检查的属性出现错误。
最佳答案
使用TypeScript 2.1和keyof功能,我已经找到了以下类型声明(基于SimpleChanges),这些声明似乎使我们能够对Component属性进行必要的类型化访问:
export type ComponentChange<T, P extends keyof T> = {
previousValue: T[P];
currentValue: T[P];
firstChange: boolean;
};
export type ComponentChanges<T> = {
[P in keyof T]?: ComponentChange<T, P>;
};
使用这些声明,vscode编辑器声明会自动获取类型信息并自动完成更改属性:
但是,一个问题是,changes参数现在将列出组件的每个属性(不仅是@Input()属性),但是我没有找到比这更好的方法了。