刚接触ts。以前都是用对象写一个配置,然后根据参数判断配置是否存在。对于多个键,不能使用不确定的字符串或数字作为键!有时候真的觉得ts很傻?网上能找到的一般解决办法是判断配置的类型,变成这样:conststatusConfig:{[k:number]:string}={0:'deviceonline',1:'deviceoffline',2:'查询状态',}functiongetDescOfStatus(status:number){returnstatusConfig[status]||'unknownstatus'}但是有时候这个配置会统一放在一个地方,或者放到一个大对象里面,每次都这样写太麻烦了,而且这个配置一般是两三个地方用到,所以我发现如下写法:conststatusConfig={0:'设备在线',1:'设备离线',2:'查询状态',}functiongetDescOfStatus(status:keyoftypeofstatusConfig){returnstatusConfig[status]||'unknownstatus'}也可以携带一个枚举类型检查:其实getDescOfStatus函数是支持所有数字和字符串的,上面的方法好像限制太多了,所以我们也可以这样改函数:conststatusConfig={0:'设备在线',1:'设备离线',2:'查询状态',}functiongetDescOfStatus(status:string|number){returnstatusConfig[statusaskeyoftypeofstatusConfig]||'未知状态'}
