如果我有一个联合类型,例如:
type StateUpdate = { key: 'surname', value: string }
| { key : 'age', value: number };
这很方便,因为它使我可以从键中确定值的类型。
但是,我希望能够具有其他功能,这些功能只能使用联合类型中的有效“键”来调用。在上面的示例中,这意味着它必须是“姓”或“年龄”。
我知道我可以将另一种类型确定为:
type ValidKey = 'surname' | 'age';
然后我可能具有一些任意功能,例如:
(keyName: ValidKey) => (console.log(keyName)); // ...or whatever
这要求我始终确保两者对应。有没有一种自动处理此问题的好方法,或者有一种更好的方法可以完全做到这一点?