今天要来对 function 来做深入一点的介绍。
如果想要把 function 存在变数里,可以对该变数作更精确的 function 规范:
function add(n1: number, n2: number):number {
return n1 + n2
}
function print(input1: string, n2: number) {
console.log(input1, n2)
}
let combineValues: (a: number, b:number) => number
combineValues = add
combineValues = print
可以看到 combineValues
定义了 function
型别,然後连要接收的 function 架构也都定义好了,要接收两个是数字的参数以及会 return 一个数字,这时可以看到第二个 combineValue
会报错,因为跟原本定义好的不同:
另外根据文件,当 function 没有 return
的叙述或是不会 return 任何值时,那就代表 function return 的值是 void
,因为 TypeScript 也可以为 return 的值进行型别定义:
function add(n1: number, n2: number):number {
return n1 + n2
}
在引数括号後面的 number
就是代表这个 function 会 return 的值的型别,如果没有特别指定的话 TypeScript 其实也会自行做 Type Inference:
那 void
的状况就会变成这样:
这边要特别注意的是没有 return 值的 void
跟 undefined
是不一样的,在 JavaScript 里面如果想要试着拿到没有 return 值的 function 时会拿到 undefined
,但是在这边 undefined
跟 void
是完全不一样的东西。
有一个跟 void
很像的状况是 return 值设定成 never
,我目前理解的是虽然没有 return 值的 function 可以设定成 void
,不过其实还是可以 return 值,但是 never
是绝对不会 return 任何值的,想要先暂且理解到这边,等之後如果有更深的理解後会再回来多做说明。
今天的学习笔记就到这边,谢谢阅读。:)
<<: Day8-React Hook 篇-认识 useMemo
>>: 【8】资料集有没有事先 shuffle 对训练所产生的影响
终於来到第三十天了~~~~!不过其实本系列不会在今天结束,我们的前端 app 丑得要命,也还没布署到...
Docker - Docker 执行 Maven with Dockerfile 参考资料 Dock...
大家好,我是乌木白,今天要和大家介绍,HTTP 状态码? 什麽是 HTTP 状态码? 在上一篇,我...
题干懒人包 基本上跟27题很像,输入是一个已经排序好的数组,最後输出非重复数值的数量,然後以下几点要...
有的人MacBook或Mac上有时会显示显示一条讯息:“您的系统已耗尽应用程序内存"/“s...