函数

作者: 糖糖不加糖_ | 来源:发表于2019-10-22 15:01 被阅读0次

⚠️ 下述所有❌ 的地方均指编译错误,但实际为可运行状态,javascript为弱类型语言导致(Typescript相当于一个严格性的刻度盘,你可以将指针拔动到你想要的位置。)

定义函数

下面代码中包含了ES5、ES6两种函数定义的方式

// ES5
function fun1 (a: number): string {  // a: number 输入参数a为number类型, fun1 (a: number): string函数返回值类型为string类型
  return '你好啊'
}
// ES6
let fun2 = (a: number): string => '你好啊';

若非必要,TypeScript通常不需要单独为函数定义返回值类型,因为TypeScript能够根据返回值自动推断出返回值类型

输入参数

必要参数

若非特意,一般函数参数都为必要参数,必要参数都必须一一对应,多或者少都无法通过检查

let fun1 = (a: number, b: string): number => 0;
fun1(2,'你好啊');
fun1(2);  // ❌ 应有 2 个参数,但获得 1 个。
fun1(2,'你好啊', 'hello'); // ❌ 应有 2 个参数,但获得 3 个。

可选参数

如果希望参数是可选择输入的,那么可以使用字符来将参数变为可选参数,注意,可选参数必须被放置在必要参数后面,原因:当必要参数和可选参数全都被输入值时,调用不会出现问题,但当只输入可选参数后的必要参数时,编译器无法判断输入的是可选参数还是必要参数

//  可选参数在必要参数后
let fun1 = (a: number, b?: string): string => '你好啊';
fun1(2, 'hello');
fun1(2);
// 可选参数在必要参数前
let fun1 = (a?: number, b: string): string => '你好啊'  // ❌ 已声明“b”,但从未读取其值。必选参数不能位于可选参数后
fun1(2, 'hello');
fun1(2) //  ❌ 应有 2 个参数,但获得 1 个。

默认参数

可以为参数提供一个默认值,当用户没有上传这个参数,或者传入的值为undefined时,该参数的值为此默认值。注意⚠️:带默认值的参数并不需要放在参数的最后面,他可以在任何位置,但如果不是放在最后,就必须使用undefined对该参数的位置进行占位处理,若使用了null,则会将null当作输入值处理输出,不会输出默认值

let fun1 = (a = '小明', b: string) => console.log(b,a)
fun1(undefined, '你好');  // 你好小明
fun1(null, '你好');   //  ❌ 类型“null”的参数不能赋给类型“string | undefined”的参数, 输出值为:你好null

剩余参数

想操纵参数,但是并不知道有多少个参数会被传进来,可以使用剩余参数,即把所有参数收集到一个变量中加省略号即可。剩余参数:可以一个都没有,也可以有很多个

let fun1 = (a = '小明', ...b: string[]) => {
  const c = a + ' ' + b.join(' ');
  console.log(c)  
}
fun1(undefined, '你好', '我好', '他好', '大家好');  // 小明 你好 我好 他好 大家好

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

      本文链接:https://www.haomeiwen.com/subject/esrvmctx.html