自学内容网 自学内容网

【前端,TypeScript】TypeScript速成(三):枚举类型

枚举类型

枚举类型是 TypeScript 相较于 JavaScript 而言特有的部分。一个简单的枚举声明如下:

enum HTTPStatus {
    OK,
    NOT_FOUND,
    INTERNAL_STATUS_ERROR,
}

与编译成 JavaScript 的代码相比较:
在这里插入图片描述
显然 TypeScript 非常的简洁。

尝试使用上述枚举类型:

function processHTTPStatus(s: HTTPStatus) {
    if(s === HTTPStatus.OK) {
        console.log("good response")
    } else {
        console.log("bad response")
    }
    console.log(s)
}

processHTTPStatus(HTTPStatus.OK)

发现输出是:

[LOG]: "good response" 
[LOG]: 0 

原因是 enum 类型当中的值按照给定的顺序从 0、1、2 开始编排。我们可以显式地为枚举类型赋值:

enum HTTPStatus {
    OK = 200,
    NOT_FOUND = 404,
    INTERNAL_STATUS_ERROR = 500,
}

另外一个要解决的问题是,我们如何通过 500 来反推出 INTERNAL_STATUS_ERROR 呢?方法也非常的简单,类似于字典的查找:

function processHTTPStatus(s: HTTPStatus) {
    console.log(HTTPStatus[s])// <-- 类似于字典的查找来反推枚举类型
}

processHTTPStatus(HTTPStatus.INTERNAL_STATUS_ERROR)

输出为:

[LOG]: "INTERNAL_STATUS_ERROR" 

原文地址:https://blog.csdn.net/Coffeemaker88/article/details/144805817

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!