假设我有一个形式如下的对象
const obj = {
a: '',
b: 0,
c: {
a: '',
b: 0,
},
};
现在我可以创建这样的类型:
type keys = keyof typeof obj;
相当于:
type keys = 'a' | 'b' | 'c';
但是我想要的是表格的类型:
type keys = 'a'
| 'b'
| 'c'
| 'c.a'
| 'c.b';
是否可以在TypeScript中构造这样的类型?
因此,我正在使用electron-store管理我的配置文件。
该库公开了接受对象键的字符串路径以返回值的函数。
import Store from 'electron-store'
const store = new Store();
store.onDidChange(
'c.a',
(newVal, oldVal) => console.log(`New: ${newVal} Old: ${oldVal}`)
);
我将上面的调用包装到了另一个函数中,该函数返回一个Observable。
function get$(key: string) {
return new Observable((subscriber) => {
store.onDidChange(key, (newValue, oldValue) => {
subscriber.next({ newValue, oldValue });
});
});
}
每当我将字符串传递给get $函数时,我都试图获取valild键路径的智能感知,这样我就无法将任何无效的键路径传递给该函数。