在 ngOnChanges 钩子中检查 SimpleChanges 接口的类型

Geo*_*kis 7 lifecycle visual-studio-code ngonchanges typescript2.1 angular

如果我们在当前组件的 ngOnChanges 钩子的 SimpleChanges 打字稿参数中进行类型检查,那就太好了。

这将防止我们在检查的属性中出错。

Geo*_*kis 12

使用TypeScript 2.1keyof功能,我找到了以下类型声明(基于 SimpleChanges),这似乎为我们提供了对组件属性的必要类型化访问:

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>;
};
Run Code Online (Sandbox Code Playgroud)

使用这些,声明 vscode 编辑器会自动获取类型信息并自动完成更改属性:

在此处输入图片说明

但有一个问题是,更改参数现在将列出组件的每个属性(不仅是 @Input() 属性),但我还没有找到比这更好的方法。