相关疑难解决方法(0)

将字符串解析为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
查看次数

从索引对象值获取联合类型

假设我有一个索引类型:

type X = {
 a: 'A',
 b: 'B'
}
Run Code Online (Sandbox Code Playgroud)

是否可以从中得到(派生):

type V = 'A' | 'B'
Run Code Online (Sandbox Code Playgroud)

不使用显式方法,如:

type V = X['a'] | X['b']
Run Code Online (Sandbox Code Playgroud)

我想要的是keyof(用于获取键联合类型),但对于值.

typescript

5
推荐指数
2
解决办法
825
查看次数

标签 统计

typescript ×2

enums ×1