Typescript有没有一种方法可以在switch中转换大小写类型?

ZiiMakc

我有一个检查请求数据以访问api端点的函数。对于每个端点,此特定端点可以有不同的预加载数据。

问题在于,对于每个操作,我都需要将请求数据转换为端点数据类型。有没有一种方法可以只对case块范围断言一次?或者我应该采取一些不同的方法。

操场

type Req<T = unknown> = { endpoint: string, data: T}

type End1 = string
type End2_3 = number

const checkRole = (req: unknown): boolean => {
    switch ((req as Req).endpoint) {
        case 'endpont1': {
            if((req as Req<End1>).data = 'hi') return true  
        }
        case 'endpont2':
        case 'endpont3': {
            (req as Req<End2_3>).data += 1;
            (req as Req<End2_3>).data *= 1;
            (req as Req<End2_3>).data -= 1;
            if((req as Req<End2_3>).data = 5) return true  
        }
        default: return false
    }
}

UPD。罐头建议的变体

提香·切尔尼科娃·德拉戈米尔

依靠您的用例的细节,您可能对有区别的联合感兴趣


type Req = { endpoint: "endpoint1", data: string }
    | { endpoint: "endpoint3" | "endpoint2", data: number }

const checkRole = (_req: unknown): boolean => {
    let req = _req as Req;
    switch (req.endpoint) {
        case 'endpoint1': {
            if (req.data = 'hi') return true
            return false;
        }
        case 'endpoint3':
        case 'endpoint2': {
            req.data += 1;
            req.data *= 1;
            req.data -= 1;
            if (req.data == 5) return true
        }
        default: return false
    }
}

游乐场链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以使Visual Studio对包括的大小写敏感?

来自分类Dev

有没有一种方法可以与忽略字符串大小写的字符串指针进行比较?

来自分类Dev

有没有一种方法可以使用特定的批处理大小写入数据库?

来自分类Dev

有没有一种方法可以转换类型参数?

来自分类Dev

有没有一种方法可以自动类型转换void指针?

来自分类Dev

有没有一种方法可以将列中的所有值都转换为小写?

来自分类Dev

有没有一种方法可以将Map <K,V>类型转换为Object类型?

来自分类Dev

有没有一种方法可以在Java中实现隐式类型转换或转换

来自分类Dev

有没有一种方法可以在TypeScript中创建扩展基本类型的名义类型?

来自分类Dev

有没有一种方法可以让文件大小只有FileDescriptor?

来自分类Dev

有没有一种方法可以将模板的类型转换为shared_ptr <T>?

来自分类Dev

有没有一种方法可以为Typescript中的嵌套键访问创建类型保护?

来自分类Dev

有没有一种方法可以计算MySQL查询响应的大小?

来自分类Dev

有没有一种方法可以批量输出磁盘上的文件大小?

来自分类Dev

有没有一种方法可以“动态调整” char变量的大小?

来自分类Dev

有没有一种方法可以获取模板提供的大小?

来自分类Dev

有没有一种方法可以估算BigQuery中的表格或字段大小?

来自分类Dev

有没有一种方法可以通过sizeof()计算指向向量的大小?

来自分类Dev

有没有一种方法可以为模板函数声明类型名?

来自分类Dev

有没有一种方法可以获取Func <T,bool>的类型?

来自分类Dev

有没有一种方法可以在Haskell中模拟线性类型?

来自分类Dev

有没有一种方法可以检查委托是值还是引用类型?

来自分类Dev

有没有一种方法可以使函数返回类型名?

来自分类Dev

有没有一种方法可以组合多个类型进行打字

来自分类Dev

有没有一种方法可以在Lotusscript中设置字段类型

来自分类Dev

有没有一种方法可以在C ++中使用类型文字?

来自分类Dev

有没有一种方法可以将OwinRequest转换为HttpRequestBase?

来自分类Dev

有没有一种方法可以从byte []转换为long []

来自分类Dev

有没有一种方法可以将JSON模式转换为XSD?

Related 相关文章

  1. 1

    有没有一种方法可以使Visual Studio对包括的大小写敏感?

  2. 2

    有没有一种方法可以与忽略字符串大小写的字符串指针进行比较?

  3. 3

    有没有一种方法可以使用特定的批处理大小写入数据库?

  4. 4

    有没有一种方法可以转换类型参数?

  5. 5

    有没有一种方法可以自动类型转换void指针?

  6. 6

    有没有一种方法可以将列中的所有值都转换为小写?

  7. 7

    有没有一种方法可以将Map <K,V>类型转换为Object类型?

  8. 8

    有没有一种方法可以在Java中实现隐式类型转换或转换

  9. 9

    有没有一种方法可以在TypeScript中创建扩展基本类型的名义类型?

  10. 10

    有没有一种方法可以让文件大小只有FileDescriptor?

  11. 11

    有没有一种方法可以将模板的类型转换为shared_ptr <T>?

  12. 12

    有没有一种方法可以为Typescript中的嵌套键访问创建类型保护?

  13. 13

    有没有一种方法可以计算MySQL查询响应的大小?

  14. 14

    有没有一种方法可以批量输出磁盘上的文件大小?

  15. 15

    有没有一种方法可以“动态调整” char变量的大小?

  16. 16

    有没有一种方法可以获取模板提供的大小?

  17. 17

    有没有一种方法可以估算BigQuery中的表格或字段大小?

  18. 18

    有没有一种方法可以通过sizeof()计算指向向量的大小?

  19. 19

    有没有一种方法可以为模板函数声明类型名?

  20. 20

    有没有一种方法可以获取Func <T,bool>的类型?

  21. 21

    有没有一种方法可以在Haskell中模拟线性类型?

  22. 22

    有没有一种方法可以检查委托是值还是引用类型?

  23. 23

    有没有一种方法可以使函数返回类型名?

  24. 24

    有没有一种方法可以组合多个类型进行打字

  25. 25

    有没有一种方法可以在Lotusscript中设置字段类型

  26. 26

    有没有一种方法可以在C ++中使用类型文字?

  27. 27

    有没有一种方法可以将OwinRequest转换为HttpRequestBase?

  28. 28

    有没有一种方法可以从byte []转换为long []

  29. 29

    有没有一种方法可以将JSON模式转换为XSD?

热门标签

归档