只需重载函数!
type BType = number | string | []
enum AEnum { number = "number", string = "string", array = "array" }
function foo(a: AEnum.number, b: number): unknown;
function foo(a: AEnum.string, b: string): unknown;
function foo(a: AEnum.array, b: []): unknown;
function foo(a: AEnum, b: BType): unknown {
return void;
}
Playground