长按图片识别二维码报名参与码云用户见面交流会
类型签名轻轻诉说着函数最不可告人的秘密。短短一行,就能暴露函数的行为和目的。O(∩_∩)O~
虽然js是动态类型的语言,但并不意味否定类型的存在,我们在写代码的时候还是要和Number,Boolean,String,Array等打交道,只不过没有在语言层面做类型检查。
add 上方的一行注释描述了函数从入参到返回值的过程,即 add 函数接受两个数字返回数字
js中有两个常用的类型,数组和函数,数组的类型可以写成Array,函数的类型可以写成Function。但这样的话我们从类型签名上获得的信息就很有限了,比如数组里面是什么?函数需要几个参?返回值是什么?
数组的类型可以写成 [String] 代表数组内部是String的类型
ps:其实数组可以看做容器 容器里面是什么还是要写上的,Promise也可以看做容器 比如类型可以写成 Promsie String
函数可以写成 (String -> String) 即在原有的基础上加上一个括号 代表一个函数
我是不建议写带有可选参数,默认参数的函数的,这样会使函数产生多语意。更好的解决办法是写多个函数。如下,多选参数的函数就要写多个类型签名了
该函数可以通过两种方式去调用
传 Url 返回 Buffer
传 URL 和 encoding 返回 String
有很多时候我们写的json是没有具体类型的,可以通过{必要的key:类型} 来进行描述 如下:
javascript 中的函数是可以使用this的 这种函数叫方法
以下是对类型的描述总结
Number 数字
String 字符串
[a] 数组
(a -> b -> c) 函数
() 无返回值 或者 无参数
Promise
{} json
this x ~> x