我一直在想要不要详细的交待一下来龙去脉.....算了,打了差不多一百字又删除了(但还是要简单的说明一下)
我在写公共库遇到这样一个问题:
export 导出的方法,其中一个参数是(type:string),这样写没有毛病,这个type可以注释一下:// (horizontal || vertical) 组件展示方式:水平 或者垂直; 在其它地方调用,虽然ts可以告诉你这个参数应该传入什么类型,但是我具体不知道要传入什么值,我还得返回那个模块去看这方法的注释,后来下班的时候突然就想到了,为何不定义参数名为:isVertical;这样我就不用去看模块,就知道我这个参数要传入什么值了.....得出一个经验:某个参数只会有两种值的情况下尽量使用布什类型定义
周末在家的时候又想起了那个问题正好有时间研究一下, 另外那如果取值是固定三个或者四个的时候应该怎么做?
开始是这样写的:(不能把公司代码贴上来,自己写了个demo)
// a: 颜色十六进制 b: 大小 isVertical: 是否垂直展示
export const getData = (a: string, b: number, isVertical: boolean): string => {
return '这只是一个demo'
}
会得到类似这样的提示
这样我只知道要传入的参数类型,若参数需要一个固定值,那就没法知道我要传入的是什么了(又得返回模块去看)
下面优化这样(不只是类型,连注释都可以一起带出来)
type Color = 'red' | 'blue'
type Big = 33 | 44 | 55
/**
* @param a 二选一: red,blue
* @param b 三选一: 33,99,66
* @param c 任意字符串
*/
export const getData = (a: Color, b: Big, c: string): string => {
return a + b + c
}
好像没啥技术含量哈,但确实困扰我蛮久,另外如果都以这种规范写,后面来的新同事,分分钟就可以上手啊~, 恩,要对未来的同事(接盘侠)好一点!哈哈哈~~