函数时一等公民,可以作为参数传递,也可以作为返回值返回。
函数定义
function add(x: number, y: number): number {
return x + y;
}
let result = add(1, 2);
第一、第二个 number
表示参数类型,第三个 number
表示函数的返回值类型。
如果过多或过少的参数,那么会报错:
function add(x: number, y: number): number {
return x + y;
}
let result = add(1);
Type '(x: number) => number' is not assignable to type '(x: number, y: number) => number'.
Types of parameters 'x' and 'x' are incompatible.
Type 'number' is not assignable to type 'string'.
可选参数
function add(x: number, y?: number): number {
return y ? x + y : x;
}
let result = add(1);
可选参数只能放在最后,否则会报错:
function add(x?: number, y: number): number {
return y ? x + y : x;
}
let result = add(1);
Type '(x?: number, y: number) => number' is not assignable to type '(x: number, y?: number) => number'.
Types of parameters 'x' and 'x' are incompatible.
Type 'number' is not assignable to type 'number | undefined'.
函数表达式
const add = function (x: number, y: number): number {
return x + y;
};
let result = add(1, 2);
箭头函数
在 ES6 中,可以使用箭头函数,简化函数表达式的定义:
const add = (x: number, y: number): number => {
return x + y;
};
let result = add(1, 2);
类型推断
在 TypeScript 中,如果没有明确指定类型,那么 TS 会自动推断出一个类型:
const add = (x: number, y: number) => {
return x + y;
};
let result = add(1, 2);
此时,result
的类型会被推断为 number
。