ts函数的基本使用

函数是javaScript应用程序的基础。它帮助你实现抽象层,模拟类,信息隐藏和模块。在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义行为的地方。TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用

1.函数定义的方式

匿名函数

const makeMoney = function(a:string,b:string){
return a+b
}
let aa =makeMoney("你好","世界")

有名函数|命名函数|普通函数

function writeCode(hour : number,sleep:number) :number{
    return hour;
}
let res1= writeCode(8,1);
console.log(`我今天写代码${res1}小时`);

箭头函数

const seeMeimei=(time : number ) : void=>{
    console.log(`我每天看${time}小l时meimei`);}

const seeMeimei1=(time:number ) :void=>console.log(`我每天看${time}小时meimei` );
seeMeimei1(2);
seeMeimei(8)

//接口
type aaa = (nun:number,tew:number)=>number
const Myfun:aaa =(x:number,y:number)=>x+y+200+0.2

let my = Myfun(100,200)

console.log(my);

2.函数参数的处理

可选参数: 在TypeScript函数里,如果我们定义了参数,则我们必须传入这些参数,除非将这些参数设置为可选,可选参数使用问号标识?

//可选参数
const fun1:(a:number,b:number)=>number=(x:number,y:number)=>{
    return x;
}

const func2=function(a : number,b?:number):number{
    return a
}
func2(10);
func2(10,20);
func2( 10,undefined);

//let res= func3(100, 200);
const func3=function(a:number=1,b:number=2,C:number=3){
    return a+b+C
}
let res= func3(103,200,400);

func3(); //600
func3(2,3);
console.log(res);

剩余参数: 有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。...args :any[]

//函数的剩余参数
const func4 = function (...args : any[]){
    console.log(args);
}
func4(10,20 , 30,"赵四");

const func5 = function(a: number,b:number, ...args :any[]) {
    console.log(a);
    console.log(b);
    console.log(args);
}
func5(10,20 , 30,"神髓","韩赵燕");

3.构造函数

TypeScript 也支持使用JavaScript内置的构造函数Function()来定义函数:

语法

var res = new Function ([arg1[,arg2[,...argN]],] functionBody)

参数说明:

.arg1,arg2,... argN:参数列表

functionBody:一个含有包括函数定义的JavaScript语句的字符串。

export default{}
var my =new Function("b","a","return a*b")
var ars =my(10,20)
console.log(ars);

4函数重载

重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。


参数类型不同:

function disp(string) : void;
function disp(number) : void;

参数数量不同:

function disp(n1: number) : void;
function disp(x : number , y : number) : void;

参数类型顺序不同:

function disp(n1: number ,s1:string) :void;
function disp(s :string,n : number) : void;

//定义函数重载
function my(a:number,b:number):number
function my(a:string,b:string):string
function my(a:number,b:string):string
function my(a:string,b:number):string
//使用函数重载
function my(a:any,b:any):any{
   console.log(a+b);
    
}
my(1,5)
my("张三",18)
my("张三","麻子")
my(2,"小李")

function myfun (a:any,b:number):any
function myfun (a:string,b:number):string
function myfun (a:any,b:any):any
function myfun (a:number):number

function myfun(a:any,b?:any):any{
    a+b
}
myfun("ggg","mmm")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值