我正在尝试为我的 Vue js 组件之一动态设置状态,并在尝试这样做时收到打字稿错误:
methods: {
resetPage() {
interface ResetStateItems {
selected: WebspaceBackupArtifactExtended[];
selectedDirectory: string;
artifacts: WebspaceBackupArtifactExtended[];
isLoadingDirectory: boolean;
restoreComplete: boolean;
isProcessingBackupRestore: boolean;
}
const resetStateItems: ResetStateItems = {
selected: [],
selectedDirectory: '/',
artifacts: [],
isLoadingDirectory: false,
restoreComplete: false,
isProcessingBackupRestore: false,
};
Object.keys(resetStateItems).forEach((stateItem: string) => {
this[stateItem as keyof ResetStateItems] =
resetStateItems[stateItem as keyof ResetStateItems];
});
},
}
打字稿给我一个错误:
ERROR in /app/src/views/my-file.vue(484,9):
my-project | 484:9 Type 'string | boolean | WebspaceBackupArtifactExtended[]' is not assignable to type 'never'.
my-project | Type 'string' is not assignable to type 'never'.
my-project | 482 |
my-project | 483 | Object.keys(resetStateItems).forEach((stateItem: string) => {
my-project | > 484 | this[stateItem as keyof ResetStateItems] =
my-project | | ^
my-project | 485 | resetStateItems[stateItem as keyof ResetStateItems];
my-project | 486 | });
我不完全确定为什么它会抛出这种错误,因为当我重现它时here它似乎没有任何错误。
是否与 Vue JS 中的“this”实例有关?对于这个错误的其他类似问题没有帮助,因为我可以告诉我我正在按照我应该的方式实施它?