typescript return写法-TypeScript 中的 Lambda 函数

2023-08-26 0 1,077 百度已收录

本文作者为360七舞团前端开发工程师

TypeScript 中的 Lambda 函数

Lambda 函数又名箭头函数

箭头函数表达式语法比函数表达式语法更加简洁,并且没有自己的this、arguments、super或new.target。 箭头函数表达式比较适合原本需要匿名函数的地方,不能作为构造函数使用。

ES6版本的TypeScript提供的箭头函数是用于定义匿名函数的缩写句型。 它用于函数表达式,并且省略 function 关键字。 箭头函数具有 this 键的语法作用。

箭头函数的作用是什么:

语法

可以分为三个部分

如果使用箭头函数表示法,则不需要使用 function 关键字。 参数在()中传递,函数表达式在{}中传递。

基本句型

(param1, param2, ..., paramN) => { statements }
(param1, param2, ..., paramN) => expression
//当只有一个参数时,圆括号可以省略,可选的
(singleParam) => { statements }
//省略圆括号
singleParam => { statements }
//没有参数的函数应该写成一对圆括号
() => { statements }

ES6 提供了其他方式来编写匿名函数、语法糖。

//sum 是一个箭头函数, a、b 是参数,a、b后面的:number 是参数类型   : number 是返回类型
箭头符号分隔了函数参数和函数体
const sum = (a: number,b: number): number => {
  return a+b;
}
 console.log(sum(20,30))// return 50

当不需要函数体并且只返回值时typescript return写法,可以省略 return 关键字及其周围的大括号。

const fun = () => 'value';

类中箭头函数的用法

class Student {
    stucode: number
    stuname: string
    //构造函数  构造Student对象
    constructor (code: number, name: string) {
        this.stucode = code
        this.stuname =name
    }
    studetail = () => {
      console.log('stucode:' + this.stucode + 'nstunam:' + this.stuname )
    }
}
export { Student }
import { Student } from '@/views/Student'
 let stu = new Student(100, 'jorn')
 stu.studetail()

带参数的箭头函数

const fun = (item: number ) => item*2;
//当只有一个参数时候,可以省略参数外面的括号
const fun = item => item*2;
//多个参数传递
const fun = (item: number,item1: number, item2: boolean) => {
let value;
if(item2){
 item++;
 value= item;
}else {
item1 ++;
value = item1;
}
  return  value;
}

箭头函数不能用作构造函数,与 new 一起使用时会抛出错误。 也没有原型属性。 Yield 关键字通常不能在箭头函数中使用(除非它嵌套在允许使用的函数内)。 因此,箭头函数不能用作函数生成器。

函数体

箭头函数可以有“速记”或通用“块”

//简写函数 省略 return
var func = x => x+x ;
//常规写法
var func = (x,y) => { return x+y; };

返回对象字面量

请记住typescript return写法,使用 params => {object:literal} 等简单语法返回对象文字是行不通的。

// 下面这样行不通
var func =  () => { foo: 1 };
var func = () => { foo: function() {} };

这是因为大括号 ({}) 内的代码被解析为句子序列(即 foo 被视为标签,而不是对象文字的一部分)。 因此,请记住将对象文字括在括号中。

var func = () => ({foo: 1});

新队

箭头函数的参数和箭头之间不能有换行符。

不能写成下面这样,是错误的

var func = ()
=> 1;

但是,“=>”之后可以换行

var func = (a,b,c) =>
{
1;
}

箭头函数也可以使用闭包

//标准的闭包函数
function A(){
    var i=0;
    return function b(){
    return (++i);
    };
};
var v =A();
v();//1
v();//2
// 箭头函数体的闭包(i=0 是默认参数)
var Add = (i=0) => { return (() => (++i) )};
var v = Add();
v();//1
v();//2
因为只有一个返回值,return 及括号() 也可以省略
var Add = (i=0) => () => (++i);

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript return写法-TypeScript 中的 Lambda 函数 https://www.wkzy.net/game/154514.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务