typescript箭头函数参数_TypeScript入门-函数

TypeScript 函数

和 javaScript 一样 , TypeScript 函数可以创建有名字的函数和匿名函数。 你可以随意选择适合应用程序的方式, 无论是定义一系列API函数还是只使用一次的函数。

创建函数的方式

和 javaScript 一样 ,TypeScript 也可以创建 带有名字的函数和匿名函数。

通过函数声明创建 带有名字的函数

通过函数表达式创建匿名函数

// Named function

function add(x , y){

return x + y;

}

// Anonymous function

let myadd = function(x , y){}

复制代码

函数类型

让我们为上面那个函数添加类型:

function add(x : number , y : number) : number{

return x + y;

}

复制代码

可选参数和默认参数

简短地说 , 传递给一个函数的参数个数必须与函数期望的参数个数一致。

function buildName(firstName : string , lastName : string){

return firstName + ' ' + lastName;

}

let res1 = buildName('1','2','3'); // 报错

let res2 = buildName('1'); // 报错

复制代码

javaScript 里 , 每个参数都是可选的 , 可传可不传。 没传参的时候 , 它的值就是 undefined。 在 TypeScript 里我们可以在参数名旁使用 ? 实现可选参数的功能。

function buildName(firstName : string , lastName ?: string){

return firstName + ' ' + lastName;

}

let res = buildName('1','2')

复制代码

可选参数必须跟在 必须参数后面。 如果上例我们想让 firstName 是可选的 , 那么就必须调整他们的位置。

在TypeScript 里 ,我们也可以为参数提供了一个默认值 ,当用户没有传递这个参数或者传递的值是 undefined 时 , 又叫做默认初始化值的参数。

剩余参数

必要参数 , 默认参数和可选参数都有个共同点 : 他们表示某一个参数。 有时 , 你想同时操作多个参数 , 或者你并不知道会有多少参数传递进来。 在 js 里 , 你可以使用 arguments 来访问所有传入的参数。

在 TypeScript里 ,你可以把所有参数收集到一个变量里

function buildName(firstName : string , ...restOfName : Array){

return firstName + ' ' + restOfName.join(' ');

}

let res = buildName('zs','hw');

复制代码

this

由于 TypeScript 是 javaScript 的超集 , ts 程序员也需要清楚 this 工作机制并且当有 bug 的时候能够找出错误所在。

this 和 箭头函数

let deck = {

suits: ["hearts", "spades", "clubs", "diamonds"],

cards: Array(52),

createCardPicker: function(){

// NOTE: the line below is now an arrow function, allowing us to capture 'this' right here

return () => {

let pickedCard = Math.floor(Math.random() * 52);

let pickedSuit = Math.floor(pickedCard / 13);

return {suit: this.suits[pickedSuit], card: pickedCard % 13};

}

}

}

let cardPicker = deck.createCardPicker();

let pickedCard = cardPicker();

console.log("card: " + pickedCard.card + " of " + pickedCard.suit);

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值