TypeScript 枚举类型
function getResult(status) { if (status === 0) { return 'offline' } else if (status === 1) { return 'online'; } else if (status === 2) { return 'deleted' } return 'error' }
这种代码很常见,但是这种并不是很直观,比如 status === 0 到底是什么意思。status === 1 到底是什么意思,其实是看不懂的。为了增加代码的可读性,可以这样写
const Status = { offline: 0, online: 1, deleted: 2 } function getResult(status) { if (status === Status.offline) { return 'offline' } else if (status === Status.online) { return 'online'; } else if (status === Status.deleted) { return 'deleted' } return 'error' } const result = getResult(Status.offline); console.log(result);
这样写更容易懂,也可以是用枚举类型
/** * 枚举类型 * 但是之前知道 OFFLINE 是 0,ONLINE 是 1 * 直接这么写,他们是 0 ,1, 2 排列的 * 如果给 OFFLINE 设置了值 OFFLINE = 1 ,对应的值是 1,2,3 * 如果给 ONLINE 设置了值 ONLINE = 4 ,对应的值是 0, 4, 5 */ enum Status { OFFLINE, ONLINE, DELETED } function getResult(status) { if (status === Status.OFFLINE) { return 'offline' } else if (status === Status.ONLINE) { return 'online'; } else if (status === Status.DELETED) { return 'deleted' } return 'error' } const result = getResult(Status.OFFLINE); console.log(result);
枚举类型就解决这种场景,这种固定 0,1,2 什么的