【TS函数定义及参数注解】

在TS中,函数的定义和调用非常类似于JavaScript。

函数的定义

使用function关键字,后面跟着函数名,参数列表和函数体。例如:

function add(a: number, b: number): number {
  return a + b;
}

上述代码定义了一个函数add,它接收两个number类型的参数ab,并返回它们的和。

函数的调用使用函数名后面跟着参数列表的方式。例如:

const result = add(2, 3);
console.log(result); // 输出 5

上述代码调用了定义好的add函数,并将两个参数23传递给它。函数执行后会返回结果5,并将结果赋值给变量result。最后,使用console.log函数输出结果。

可以在函数的定义中使用冒号(:)来指定参数的类型,以及使用箭头(=>)来指定函数的返回类型。在调用函数时,也可以根据函数定义中的参数类型来传递参数,并根据返回类型来处理函数的返回值。

参数类型注解

TS中的参数类型注解可以用来指定函数的参数的类型。下面是一些常见的参数类型注解的示例:

  1. 基本类型注解:
function sum(a: number, b: number): number {
  return a + b;
}
  1. 字符串类型注解:
function greet(name: string): string {
  return `Hello, ${name}!`;
}
  1. 数组类型注解:
function calculateTotal(numbers: number[]): number {
  let total = 0;
  for (let num of numbers) {
    total += num;
  }
  return total;
}
  1. 对象类型注解:
function printPerson(person: { name: string, age: number }): void {
  console.log(`Name: ${person.name}, Age: ${person.age}`);
}
  1. 任意类型注解:
function printValue(value: any): void {
  console.log(value);
}
  1. 联合类型注解:
    TS (TypeScript) 中的联合类型注解是一种可以指定某个变量可以是多种类型中的一种的类型注解。它使用 | 符号将多个类型连接在一起表示。

例如,下面的代码定义了一个变量 myVariable,它可以是 number 类型或者 string 类型:

let myVariable: number | string;

这样一来,我们就可以给 myVariable 赋值为一个 number 类型的值或者一个 string 类型的值。

myVariable = 42;
myVariable = "Hello, world!";

使用联合类型注解可以增加代码的灵活性,允许在一定程度上处理多种类型的情况。但是需要注意的是,联合类型的变量在使用时只能使用两个类型的共有属性或方法,不能使用特定类型的属性或方法。

let myVariable: number | string;

myVariable.toString(); // 正确,因为 number 和 string 类型都有 toString() 方法

myVariable.toFixed(); // 错误,因为只有 number 类型有 toFixed() 方法

函数中使用同理

function printId(id: number | string) {
  console.log(id.toUpperCase());
  Property 'toUpperCase' does not exist on type 'string | number'.
  Property 'toUpperCase' does not exist on type 'number'.
}

在需要对某个变量的类型进行限定,但又不确定具体类型时,联合类型注解是一个很有用的工具。

这些注解可以提供类型检查和智能提示,从而帮助我们避免一些常见的错误。

你可能感兴趣的:(TS,typescript)