TS学习笔记03 函数
和JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数。 你可以随意选择适合应用程序的方式,不论是定义一系列API函数还是只使用一次的函数。
JS中函数定义的三种方式:
function f1(a,b){
return a +b;
}
var f2 = function(a,b){ return a+b; }
var f3 = (a,b) => a+b;
TS中,为参数定义类型
/**
* TS中,为参数定义类型
* 1.调用函数时参数的数量、类型必须一致
* 2.未指定类型时,参数默认为any类型
*/
function f1(a:string,b:number,c:boolean,d){}
//调用,不传参或者参数类型不一致都会报错
f1('hello',12,true);
/**
* 可选参数
* 1.使用?号表示参数可选
* 2.可选参数必须位于必选参数的后面
*/
function f2(a:string,b?:number,c?:boolean){}
f2('hello',12);
f2('hello',12,true);
f2('hello');
/**
* 默认参数
* 1.当未传递参数 或 值为undefined,会使用默认值
*/
function f3(a:string,b:number=8,c:boolean){
console.log(a,b,c);
}
/**
* 剩余参数
* 1.参数个数任意,可以有多个,也可以没有
* 2.使用...定义剩余数据。类型为数组,会将传入的所有参数封装到该数组中
*/
function f5(a:string,...b:number[]){
console.log(a);
console.log(b);
}
//传入的多个值最终是放在b这个数组中的
f5('hello',1,2,3,4,5);
为返回值定义类型
/**
* 为返回值定义类型
* 1.在()后面指定返回值的类型
* 2.当函数没有返回值时,指定为void
*/
function f6():string{
return "hello";
// return 123; 返回123不符合string类型就会抱错
}
function f7():void{
// return 123; // 不能返回结果
}
/**
* 函数类型,包含两部分:参数类型、返回值类型
*/
// 定义一个变量f8,类型为函数,即创建一个函数类型的变量,函数的参数类型为string、number,返回值类型为boolean
/*
let f8:(a:string,b:number) => boolean;
为变量赋值一个同类型的函数
f8 = function(a:string,b:number):boolean{
console.log(a,b);
return true;
}
*/
//等于号前面是函数声明,等于号后面是函数赋值
let f8:(a:string,b:number) => boolean = function(a:string,b:number):boolean{
console.log(a,b);
return true;
}
console.log(f8('hello',12));