setState()
将联合类型值分配给对象数组时,如何设计函数?
enum SomeStateEnum {
IsRunning,
Name,
}
type PersonState = {
[SomeStateEnum.IsRunning]: boolean;
[SomeStateEnum.Name]: string;
};
const state: PersonState = {
[SomeStateEnum.IsRunning]: false,
[SomeStateEnum.Name]: 'John Doe',
};
function setState(key: SomeStateEnum, value: boolean | string) {
state[key] = value;
}
Run Code Online (Sandbox Code Playgroud)
您需要确保分配的值应与键的值类型匹配。
function setState<T extends SomeStateEnum>(key: T, value: PersonState[T]) {
state[key] = value;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51 次 |
最近记录: |