TypeScript 函数的基本介绍

函数介绍

// 函数:封装了一些重复使用的代码,在需要的时候直接调用即可
(() => {
    // js写法
    // 函数声明,命名函数
    // function add(x, y) {
    //     return x + y
    // }
    // 函数表达式,匿名函数
    // const add2 = function (x, y) {
    //     return x + y
    // }

    // ts写法
    // 函数声明,命名函数
    // 函数中的x和y参数的类型是string类型,小括号后面的:string,代表的是该函数的返回值也是string类型
    function add(x: string, y: string): string {
        return x + y
    }
    console.log(add('123', '456'));

    // 函数表达式,匿名函数
    const add2 = function (x: number, y: number): number {
        return x + y
    }
    console.log(add2(11, 22));

    // 函数的完整写法
    const add3: (x: number, y: number) => number = function (x: number, y: number): number {
        return x + y
    }
    console.log(add3(10, 100));

})()

可选参数和默认参数

// 可选参数:函数在声明的时候,内部的参数使用了?进行修饰,那么就表示该参数可以传入也可以不用传入,叫可选参数
// 默认参数:函数在声明的时候,内部的参数有自己的默认值,此时这个参数叫默认参数
(() => {
    const getFullName = function (firstName: string = '东方', lastName?: string): string {
        if (lastName) {
            return firstName + '_' + lastName
        } else {
            return firstName
        }
    }

    // 函数调用
    // 什么也不用传入
    console.log(getFullName());
    // 只传入姓氏
    console.log(getFullName('诸葛'));
    // 传入姓氏和名字
    console.log(getFullName('诸葛', '孔明'));
})()

剩余参数

// 剩余参数(rest参数)
// 剩余参数是放在函数的声明的时候所有的参数的最后
(() => {
    // ...args:string[]  --->剩余的参数,放在一个字符串的数组中,args里面
    function showMsg(str: string, str2: string, ...args: string[]) {
        console.log(str);
        console.log(str2);
        console.log(args);
    }
    showMsg('a', 'b', 'c', 'd', 'e', 'f')
})()

函数重载

// 函数重载:函数名字相同,函数的参数及个数不同
(() => {
    // 函数重载声明
    function add(x: string, y: string): string
    function add(x: number, y: number): number

    // 函数声明
    function add(x: string | number, y: string | number) {
        if (typeof x === 'string' && typeof y === 'string') {
            return x + y
        } else if (typeof x === 'number' && typeof y === 'number') {
            return x + y
        }
    }
    // 函数调用
    console.log(add('诸葛', '孔明'));
    console.log(add(10, 20));
    // 如果此时传入的为非法数据,ts会提示错误
    console.log(add('12', 20));
    console.log(add(10, '21'));
})()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeScript是JavaScript的超集,包含了所有JavaScript的语法,同时还提供了一些额外的语法和特性。 1. 变量声明 TypeScript提供了多种变量声明的方式: - var 可以使用var关键字声明变量,作用域为当前函数。 - let let关键字可以声明块级作用域变量,作用域为当前块。 - const const关键字声明的是一个常量,一旦被赋值,就不能再次被修改。 2. 类型注解 TypeScript中可以为变量、函数的参数和返回值指定类型注解,以确保类型的正确性。 例如: ```typescript let num: number = 123; function add(x: number, y: number): number { return x + y; } ``` 3. 接口 接口可以用来定义对象的类型,包括属性名和类型。 例如: ```typescript interface Person { name: string; age: number; } let person: Person = { name: 'Tom', age: 18 }; ``` 4. 类 TypeScript支持类的定义,包括继承和成员修饰符。 例如: ```typescript class Animal { private name: string; constructor(name: string) { this.name = name; } public move(distance: number) { console.log(`${this.name} moved ${distance}m.`); } } class Dog extends Animal { constructor(name: string) { super(name); } public bark() { console.log('Woof! Woof!'); } } let dog = new Dog('Max'); dog.bark(); dog.move(10); ``` 5. 函数 TypeScript中的函数可以指定参数类型、返回值类型和函数类型。 例如: ```typescript function add(x: number, y: number): number { return x + y; } let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x + y; } ``` 6. 泛型 泛型可以用来在定义函数、类、接口时,让类型参数化,以便在使用时动态指定具体类型。 例如: ```typescript function identity<T>(arg: T): T { return arg; } let output = identity<string>('hello'); ``` 除了上述语法外,TypeScript还提供了很多其他的语法和特性,例如枚举、元组、命名空间等,可以根据实际需求灵活使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值