TypeScript 函数参数

TypeScript 函数参数

函数是任何应用程序的基本构建模块,它包含一些业务逻辑。在TypeScript中创建函数的过程与JavaScript中的过程类似。

在函数中,参数是传递给函数的值或参数。TypeScript编译器接受与函数签名中定义的相同数量和类型的参数。如果编译器与函数签名中的参数不匹配,则将给出编译错误。

我们可以将函数参数分类为三种类型:

TypeScript 函数参数

  • 可选参数
  • 默认参数
  • 剩余参数

可选参数

JavaScript允许我们在调用函数时不传递任何参数。因此,在JavaScript函数中,参数是可选的。如果我们声明函数时没有传递参数,那么每个参数的值都是undefined。

与JavaScript不同,TypeScript编译器会在我们尝试调用函数时抛出一个错误,如果没有以函数签名中声明的参数数量和类型提供参数。为了解决这个问题,TypeScript引入了 可选参数 。我们可以通过使用 问号符号(’?’) 来使用可选参数。这意味着可能或可能不会接收值的参数可以在后面加上一个“?”符号来标记它们为可选参数。在下面的示例中, e_mail_id 被标记为可选参数。

语法

function function_name(parameter1[:type], parameter2[:type], parameter3 ? [:type]) { }

示例

function showDetails(id:number,name:string,e_mail_id?:string) { 
   console.log("ID:", id, " Name:",name); 
   if(e_mail_id!=undefined)  
   console.log("Email-Id:",e_mail_id); 
}
showDetails(101,"Virat Kohli");
showDetails(105,"Sachin","sachin@javatpoint.com");

输出:

TypeScript 函数参数

默认参数

TypeScript提供了一种设置函数参数默认值的选项。如果用户未向参数传递值,TypeScript会为参数初始化默认值。默认参数的行为与可选参数相同。对于默认参数,如果在函数调用中未传递值,则默认参数必须在函数签名中的必需参数之后。然而,如果一个函数签名在必需参数之前有一个默认参数,我们仍然可以调用一个将默认参数标记为传递undefined值的函数。

注意:

参数不能同时被设置为默认和可选。

语法:

function function_name(parameter1[:type], parameter2[:type] = default_value) { }

示例

function displayName(name: string, greeting: string = "Hello") : string {
    return greeting + ' ' + name + '!';
}
console.log(displayName('JavaTpoint'));   //Returns "Hello JavaTpoint!"
console.log(displayName('JavaTpoint', 'Hi'));   //Returns "Hi JavaTpoint!".
console.log(displayName('Sachin'));    //Returns "Hello Sachin!"

输出:

TypeScript 函数参数

Rest参数

它用于向函数传递零个或多个值。我们可以通过在参数之前加上三个”点”字符(’…’)来声明它。它允许函数具有不同数量的参数,而不使用参数对象。TypeScript编译器将创建一个带有rest参数的参数数组,以便所有数组方法都可以与rest参数一起使用。在参数数量不确定的情况下,rest参数非常有用。

Rest参数的规则:

  • 函数中只能使用一个rest参数。
  • 必须是数组类型。
  • 必须是参数列表中的最后一个参数。

语法:

function function_name(parameter1[:type], parameter2[:type], ...parameter[:type]) { }

示例

function sum(a: number, ...b: number[]): number {
  let result = a;
  for (var i = 0; i < b.length; i++) {
  result += b[i];
  }
  return result;
}
let result1 = sum(3, 5);
let result2 = sum(3, 5, 7, 9);
console.log(result1 +"\n" + result2);

输出:

TypeScript 函数参数

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程