小编Jim*_*ert的帖子

将字符串解析为Typescript Enum

鉴于enum看起来像这样:

export enum UsedProduct {
    Yes = 'yes',
    No = 'no',
    Unknown = 'unknown',
}
Run Code Online (Sandbox Code Playgroud)

我想写一个函数,它接受一组字符串文字并返回一个实例UsedProduct.到目前为止,我写了一个这样的函数:

export function parseUsedProduct(usedProdStr: 'yes' | 'no' | 'unknown'): UsedProduct {
    switch (usedProdStr) {
        case 'yes':
            return UsedProduct.Yes;
        case 'no':
            return UsedProduct.No;
        case 'unknown':
            return UsedProduct.Unknown;
        default:
            return unknownUsedProductValue(usedProdStr);
    }
}

function unknownUsedProductValue(usedProdStr: never): UsedProduct {
    throw new Error(`Unhandled UsedProduct value found ${usedProdStr}`);
}
Run Code Online (Sandbox Code Playgroud)

这个实现并不是很好,因为我必须重新定义枚举的可能值.如何重写此功能以便我不必定义'yes' | 'no' | 'unknown'

enums typescript

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

标签 统计

enums ×1

typescript ×1