我试着使用下面的模式:
enum Option {
ONE = 'one',
TWO = 'two',
THREE = 'three'
}
interface OptionRequirement {
someBool: boolean;
someString: string;
}
interface OptionRequirements {
[key: Option]: OptionRequirement;
}
这对我来说似乎很简单,但是我得到了以下错误:
索引签名参数类型不能为联合类型。可以考虑使用映射对象类型。
我做错了什么?
我也遇到过类似的问题。我试图在创建angular表单验证器时只使用特定的键。
export enum FormErrorEnum {
unknown = 'unknown',
customError = 'customError',
}
export type FormError = keyof typeof FormErrorEnum;
以及用法:
static customFunction(param: number, param2: string): ValidatorFn {
return (control: AbstractControl): { [key: FormErrorEnum]?: any } => {
return { customError: {param, param2} };
};
}
这将允许使用1 - X个键。