Day23-TypeScript(TS)函式(Function)的选择性参数(Optional Parameter)

今天要来介绍TypeScript(TS)函式(Function)的选择性参数(Optional Parameter)
这时我们就要来复习一下啦,
在Day12基础用法中有提到过选择性属性(Optional Properties)(Day12-TypeScript(TS)的选择性属性(Optional Properties))
那麽今天要讲的跟之前的观念是一样的喔,
只是把函式内的参数加上了选择性属性就会变成选择性参数了,
概念很容易理解吧,
那我们来看看范例说明,

首先附上之前的一般函式的范例吧,
下为Day21示范的范例*(Day21-TypeScript(TS)的函式(Function) Part1)*,

function add(x: number, y: number): number {
    return x + y;
}

接着将参数y定义为选择性参数
表示在呼叫这个函式时可传入也可不传入此参数,
也相对的,
判断就会放在函式内,
如下,

function add(x: number, y?: number): number {
    if (typeof y !== 'undefined') {
        return x + y;
    } else {
        return x;
    }
}

以上面的范例来说,
若是参要判断参数y究竟有没有被传进来,
那麽函式内就可以用typeof y !== 'undefined'判断式,
会回传布林值
以此判断後,
在决定传出的函示。

若是没经过判断,
直接将数字值x加上undefined的y
便会得到NaN的结果,
代表无效的数值运算
因此我们还是需要加上判断式来避免这个情况发生。

在使用上的范例如下,

let i = 10;
let j = 20;
let r1 = add(i, j); // 10+20=30
let r2 = add(i); // 10
console.log(r1, r2); // 30 20 

也就是一般呼叫函式的方式,
差别在於多了个选择性参数
让这函式变得更有弹性。

今日结语

今天把过去学的东西合并在一起来使用,
用比较基础的举例相信大家也都能理解,
那麽今天也要精神喊话一下,
大家加油喔。


<<:  自动化测试,让你上班拥有一杯咖啡的时间 | Day 24 - 学习 trigger 的用法

>>:  MS Azure ML01

【C#】Structural Patterns Bridge Mode

The Bridge design pattern decouples an abstraction...

网页定位-30天学会HTML+CSS,制作精美网站

今天要来介绍的是定位(position),可以用来设定元素的摆放位置了 position 定位 st...

[Day - 29] React Hooks useEffect 学习笔记

useEffect - 副作用处理 useEffect:资料获取、订阅或手动方式修改 React C...

防止自动锁屏

缘由: UIUX提出说想让App使用者的手机可以一直亮着,不会自动锁屏,虽然心里知道是有可能的,但没...

29.Getter and Mutation

Vuex内的getter,相当於component内的computed,作用都是改变资料的表示形式 ...