📜  如何在 Typescript 中编写函数?

📅  最后修改于: 2022-05-13 01:56:25.027000             🧑  作者: Mango

如何在 Typescript 中编写函数?

用 TypeScript 编写函数类似于用 JavaScript 编写函数,但增加了参数和返回类型。请注意,任何 JavaScript函数都是完全有效的 TypeScript函数。但是,我们可以通过添加类型做得更好。

语法:让我们看一个基本的 TypeScript函数语法(有两个参数)

function functionName(arg1: , 
        arg2: ):  {
    // Function body...
}

以下是一些有助于更好理解的功能。

示例 1:在此示例中,我们正在编写一个函数来将两个数字相加

Javascript
// TypeScript Code
// Following function returns the addition
// of it's two parameters
function addTwo(a: number, b: number): number {
    return a + b;
}
 
console.log(addTwo(7, 8)); // logs 15


Javascript
// Following function adds it's two parameters then
// returns it as string form in base 16
function getHexAddition(a: number, b: number): string {
    return (a + b).toString(16);
}
 
console.log(getHexAddition(10, 16)); // logs '1a'


Javascript
// Following function returns good morning
// message based on value of name passed
function goodMorning(name?: string): string {
    
    // if name exits use it as suffix else ignore name
    const suffix = (name ? `, ${name}.` : '.');
    return 'Good Morning' + suffix;
}
 
// logs 'Good Morning.'
console.log(goodMorning());
 
// logs 'Good Morning, Sam.'
console.log(goodMorning('Sam'));


Javascript
function pow(base: number, power = 1): number {
   return Math.pow(base, power);
}
 
console.log(pow(7));    // logs 7
console.log(pow(7, 2)); // logs 49


输出:

15

示例 2:将两个数字相加并返回等效的十六进制字符串。

Javascript

// Following function adds it's two parameters then
// returns it as string form in base 16
function getHexAddition(a: number, b: number): string {
    return (a + b).toString(16);
}
 
console.log(getHexAddition(10, 16)); // logs '1a'

输出:

1a

添加可选参数和默认参数:添加可选参数非常简单,只需添加 ?到参数名称的末尾。

示例 3:编写一个函数来记录带有名称的早安消息,如果未传递名称,则仅记录早安。

Javascript

// Following function returns good morning
// message based on value of name passed
function goodMorning(name?: string): string {
    
    // if name exits use it as suffix else ignore name
    const suffix = (name ? `, ${name}.` : '.');
    return 'Good Morning' + suffix;
}
 
// logs 'Good Morning.'
console.log(goodMorning());
 
// logs 'Good Morning, Sam.'
console.log(goodMorning('Sam'));

输出:对于默认参数,后缀为等号和默认值(TS 编译器将根据提供的值自动推断默认参数的类型)。

Good Morning.
Good Morning, Sam.

示例 4:编写一个返回 base^{power} 的函数,如果未提供 power,则假定为 1。

Javascript

function pow(base: number, power = 1): number {
   return Math.pow(base, power);
}
 
console.log(pow(7));    // logs 7
console.log(pow(7, 2)); // logs 49

输出:

7
49