• 02、TypeScript 中的函数


    // 函数的定义
    /*// es5 函数声明
    function run() {
      return 'run'
    }
    // 匿名函数定义
    let run2 = function () {
      return 'run2'
    }*/
    
    // 1.ts 函数声明,指定返回值类型
    function run11(): string {
      return 'run'
    }
    
    // 匿名函数,指定返回值类型
    let run12 = function (): number {
      return 123;
    }
    
    // 2.ts 定义方法传参
    function getInfo(name: string, age: number): string {
      return `${name} --- ${age}`
    }
    
    // 没有返回值的方法,通过 void 声明
    function run22(): void {
      console.log(111);
    }
    
    console.log(getInfo('zhangning', 24));
    
    // 3.方法可选参数
    // es5 中方法的实参和形参可以不一样,但是 ts 中必须一样,如果不一样就需要配置可选参数
    // age? 表示可选参数,可传可不传,可选参数必须配置到参数的最后面
    function getInfo1(name: string, age?: number): string {
      if (age) {
        return `${name} --- ${age}`
      } else {
        return `${name} --- 年龄保密`
      }
    }
    
    getInfo1('zhangning');// 不传也不会报错
    
    // 4.默认参数(可选参数)
    // es5 不可以设置默认参数,es6 和 ts 都可以设置默认参数
    function getInfo2(name: string, age: number = 20): string {
      return `${name} --- ${age}`
    }
    
    getInfo2('zhangning');
    
    // 5.剩余参数
    function sum(a: number, b: number, c: number, d: number, ...rest: Array<number>): number {
      var sum = a + b + c + d;
      for (let i = 0; i < rest.length; i++) {
        sum += rest[i]
      }
      return sum;
    }
    
    sum(1, 2, 3, 4, 5, 6, 7)
    
    // 6.函数重载
    // java 中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时就出现函数重载的情况
    // typescript 中的重载,通过为同一个函数提供多个函数类型定义来实现多种功能的目的
    // ts 为了兼容 es5 以及 es6 重载的写法和 java 中有区别
    
    // es5 中出现同名的方法,会替换
    /*
    function css(config) {}
    function css(config, val) {}
    */
    
    // ts 中的重载
    function getI(name: string): string;
    function getI(age: number): number;
    function getI(str: any): any {
      if (typeof str === 'string') {
        return `姓名:${str}`
      } else {
        return `年龄:${str}`
      }
    }
    
    getI('zhangning');// zhangning
    getI(24);// 24
    // getI(false);// 错误的写法,因为没有找到参数匹配
    
    // ts 中的重载,参数不同
    function getI1(name: string): string;
    function getI1(name: string, age: number): string;
    function getI1(name: string, age?: number): any {
      if (age) {
        return `姓名:${name}----年龄:${age}`
      } else {
        return `年龄:${name}`
      }
    }
    
    getI1('zhangning');
    getI1('zhangning', 24);
    // getI1(24);// 错误的写法,重载的方法中找不到
    
    // 7.箭头函数
  • 相关阅读:
    Canvas
    Web API 接口-JavaScript全部api接口文档
    编程中的命名设计那点事
    线程池的使用
    SRW锁的使用
    内存屏障
    VC用Beep整几首歌听听~~~
    简单的多线程并发同步演示(4种同步方法)
    C语言生成程序问题
    文件操作(输出倒数第二行、逆序输出)
  • 原文地址:https://www.cnblogs.com/zhangning187/p/tsfunzn210411.html
Copyright © 2020-2023  润新知