知识点:
TypeScript函数重载
TypeScript 中的函数重载
示例:
1 | type MessageType = "string" | "image" | "audio"; |
这里面存在几个问题
-
getMessage 返回参数存在多个类型,这种返回值无法直接使用,需要指定其具体类型,像这种返回值并没有价值。
-
在函数内部,返回一个值时,还存在返回值不能同时满足所有定义的返回类型会出现报错提示
-
在使用函数时,参数的提示信息,不够具体,并且无法表达出输入不同类型的不同输出类型
使用重载改进
1 | type MessageType = "string" | "image" | "audio"; |
再看上述的问题:
-
准确的返回值类型
-
在函数内部,返回值也不是问题
-
函数提示信息
补充
TypeScript 重载的过程是,拿传入的参数和重载的方法签名列表中由上往下逐个匹配,直到找到一个完全匹配的函数签名,否则报错。所以推荐的做法是将签名更加具体的重载放上面,不那么具体的放后面。