TypeScript的箭头函数
认识箭头函数
var fun1 = function(a:number, b:number=2):number{
return a+b;
}
function fun2(a:number, b:number):number
{
return a+b;
}
//使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,
//并使用“=>”连接参数列表和函数体。
var fun3 = (a:number, b:number):number=>{
return a+b;
}
(a:number,b:number):number =>{
return a+b;
}
//===================无参
var fun5 = function(){
//do something.
}
var fun6 = ()=>{};
//=================单个参数
var fun7 = function(a:number){}
var fun8= (a:number) =>{}
//var fun9 = a => {}; ///js ok,但是ts下面会编译报错
//如果只有一个表达式,可以省略 "{}" 和 "return"
///如果包含多条语句,不能省略 "{}" 和 "return"
let fun9 = ()=> "hello";
let fun10 = ()=> {return ‘hello‘};
let fun11 = (a:number, b:number)=> a+b;
let fun12 = (a:number, b:number)=> {return a+b};
let fun13 = (a:number)=>{
a=a+1;
return a;
};
// fun14 => {key:x};
//y => ({key:y});
(x:number) => ({key:x});
let fun15 = (x:number) => ({key:x});
console.dir(fun15);
let fun16 = (a:number)=>{
a ++;
return a;
}
fun16(100);
console.log(fun16(100));
//===================================
var Person = {
firstName:"hello",
lastName:"world",
getFullName:function(firstName:string){
console.log(this);
var first = this.firstName
var fn = (f:string)=>{
console.log(this);
return f+this.lastName;
}
return fn.call({firstName:‘hh‘}, firstName);
}
}
console.log(Person.getFullName(‘hi‘)); /// hiworld
//===================================
var obj = {
array:[1,2,3],
sum:()=>{
console.log("sum:");
return (i:number,j:number)=>i+j;
}
}
let fun17 = obj.sum();
//console.log(fun17(5,6));
console.log(obj.sum()(2,3)); // 5