我有一个功能:
public doSomethingWithEnum(enumType) {
// Iterate over enum keys with Object.keys(enumType)
}
Run Code Online (Sandbox Code Playgroud)
我可以像这样使用它:
export enum MyEnum { SomeEnumValue = 'SomeEnumValue', SomeOtherValue = 'SomeOtherValue' }
doSomethingWithEnum(MyEnum);
Run Code Online (Sandbox Code Playgroud)
很好,它有效。问题是我想要该参数的类型,以便我可以向它传递任何枚举。目前,:any我认为这也可能过于开放。
有什么方法可以限制/指定该参数的类型吗?
我知道可以通过列出已知类型来限制这一点,例如:
doSomethingWithEnum(enumType: MyEnum | MyOtherEnum)
Run Code Online (Sandbox Code Playgroud)
但我需要它比这更具可扩展性,我不想每次不同的消费者需要调用服务时都必须附加类型。