TypeScript day2 --- TypeScript 函数 Number、String、Array 元组 联合类型

TypeScript 函数

TS函数定义与JS一致,只记录下来与JS使用起来不一样的地方。本文内容参考网站TS菜鸟教程。文档搬运工,整理记录学习脚步,轻踩~

函数返回值
// 函数定义
function greet():string { // 返回一个字符串(这里可以规定返回值的类型)
    return "Hello World" 
}
带参数的函数
function add(x: number, y: number): number {
    return x + y;
}
console.log(add(1,2))
可选参数和默认参数
可选参数

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

function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}

注意:可选参数放在必选参数的后面

默认参数

我们也可以设置参数的默认值,这样在调用函数的时候,如果不传入该参数的值,则使用默认参数。注意:参数不能同时设置为可选和默认。

function calculate_discount(price:number,rate:number = 0.50) { 
    var discount = price * rate; 
    console.log("计算结果: ",discount); 
} 
calculate_discount(1000) //500
calculate_discount(1000,0.30)//300
剩余参数

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

function addNumbers(...nums:number[]) {  
    var i;   
    var sum:number = 0; 
    
    for(i = 0;i<nums.length;i++) { 
       sum = sum + nums[i]; 
    } 
    console.log("和为:",sum) 
 } 
 addNumbers(1,2,3) //6
 addNumbers(10,10,10,10,10)//50
递归函数

递归函数即在函数内调用函数本身。

function factorial(number) {
    if (number <= 0) {         // 停止执行
        return 1; 
    } else {     
        return (number * factorial(number - 1));     // 调用自身
    } 
}; 
console.log(factorial(6));      // 输出 720
Lambda 函数(箭头函数)

单个参数括号可选,无参数设置空括号,参数类型标注不标注都可以,和JS使用箭头函数是一样一样滴~

函数重载

重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。如果参数类型不同,则参数类型应设置为 any。
参数数量不同你可以将不同的参数设置为可选。

function disp(s1:string):void; 
function disp(n1:number,s1:string):void; 
 
function disp(x:any,y?:any):void { 
    console.log(x); 
    console.log(y); 
} 
disp("abc") 
disp(1,"xyz");
//以下是输出结果
abc
undefined
1
xyz

TypeScript Number、String、Array

TypeScript 与 JavaScript 类似,支持 Number 对象、String对象、Array 对象。详细见文档菜鸟教程

TypeScript 元组

我们知道数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。
元组中允许存储不同类型的元素,元组可以作为参数传递给函数。
创建元组的语法格式如下:
var tuple_name = [value1,value2,value3,…value n]
用法和数组差不多,差别就在元组中元素的数据类型可以不同。详细可参考菜鸟教程元组

TypeScript 联合类型

联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。

var val:string|number 
val = 12 
console.log("数字为 "+ val) 
val = "Runoob" 
console.log("字符串为 " + val)

用法很简单。就是一个管道符设置变量的多种数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值