试图让类型在这里正常工作时遇到了一些麻烦。
我想在一个对象中指定每个顶级键是联合中的一个字符串,值是一个嵌套对象,它具有另一个联合中的一个字符串的键,它的值可以是来自第一个联合(有点像状态机)。
例如:
type Status = 'idle' | 'loading' | 'error' | 'view'
type Actions = 'search' | 'search_success' | 'search_failure'
const app = {
idle: {
search: 'loading'
},
loading: {
search_success: 'view',
search_fail: 'error',
},
error: {
search: 'loading'
}
view: {
search: 'loading'
}
}
我尝试输入的内容是:
type States = { [key in Status]: { [key in Actions]: Status } };
虽然这不起作用。有人可以解释我如何利用一些实用程序类型来允许嵌套对象键不需要来自 Actions 类型的所有值吗?
谢谢!