Typescript 使用字符串枚举为接口提供索引
在Typescript中,我想利用我的字符串枚举: 因此,它的字符串值在对象上提供类型检查约束,如下所示:Typescript 使用字符串枚举为接口提供索引,typescript,Typescript,在Typescript中,我想利用我的字符串枚举: 因此,它的字符串值在对象上提供类型检查约束,如下所示: const mutations: IDictionary<VuexMutation> = { ['registration/REGISTER'](state, payload) { state.registration = { meta: { serverValidated: false
const mutations: IDictionary<VuexMutation> = {
['registration/REGISTER'](state, payload) {
state.registration = {
meta: {
serverValidated: false
},
value: payload
};
},
['registration/REGISTER_COMPLETED'](state) {
state.registration.meta.serverValidated = true;
}
};
在上面的示例中,IDictionary接口允许我键入对象vlue的值,但允许任何字符串索引
您可以在构造中使用键:
export const enum MutationKeys {
registerUser = 'registration/REGISTER',
registerUserCompleted = 'registration/REGISTER_COMPLETED'
}
type MutationDictionnary<P> = {
[key in MutationKeys]: P
}
const mutations: MutationDictionnary<VuexMutation> = {
['registration/REGISTER'](state, payload) {
state.registration = {
meta: {
serverValidated: false
},
value: payload
};
},
['registration/REGISTER_COMPLETED'](state) {
state.registration.meta.serverValidated = true;
}
};
您可以在构造中使用键:
export const enum MutationKeys {
registerUser = 'registration/REGISTER',
registerUserCompleted = 'registration/REGISTER_COMPLETED'
}
type MutationDictionnary<P> = {
[key in MutationKeys]: P
}
const mutations: MutationDictionnary<VuexMutation> = {
['registration/REGISTER'](state, payload) {
state.registration = {
meta: {
serverValidated: false
},
value: payload
};
},
['registration/REGISTER_COMPLETED'](state) {
state.registration.meta.serverValidated = true;
}
};