相关疑难解决方法(0)

将数字转换为枚举

enum SomeEnum {
  a = 10
  b = 20
}

const n: number = 20;

const enumValue: SomeEnum = ???;

Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以转换nenumValue,而不必为每个枚举类型编写 switch-case。

typescript

9
推荐指数
1
解决办法
8098
查看次数

如何输入带枚举的函数

鉴于一些enum MyEnum {ONE, TWO},我想编写一个名为 like

useMyFun(MyEnum, MyEnum.ONE);
Run Code Online (Sandbox Code Playgroud)

我没有正确输入它。现在我有如下内容

type StringKeyOf<T> = Extract<keyof T, string>;
type EnumNumber<E> = Record<StringKeyOf<E>, number>;
function useMyFun<E extends EnumNumber<E>, V extends number=number> (
    anEnum: E,
    initialState: number) : {value: V, setValue: (v: V) => void}
{
    const [value, setValue] = useState<V>(initialState as V);
    //.... more stuff using both arguments omitted    
    return {value, setValue};
}
Run Code Online (Sandbox Code Playgroud)

这是一个 react-hook,但这并不重要,因为编译它所需的只是一个虚拟对象

function useState<V>(initialState: V) {
    const result: [V, (v: V) => void] = [initialState, v => { }];
    return …
Run Code Online (Sandbox Code Playgroud)

enums typescript typescript-generics

5
推荐指数
1
解决办法
190
查看次数

标签 统计

typescript ×2

enums ×1

typescript-generics ×1