zoukankan      html  css  js  c++  java
  • typeScript中的函数

    1.最简单的案例
    var getInfo():string{
    return "Josie"
    };

    2.传参案例
    var getInfo(name:string):string{
    return My name is ${name}
    };
    调用: getInfo("Jocelyn")
    若传可选参数
    var getInfo(name:string,age?:number):string{
    if(age){
    return My name is ${name}, I am ${age} years old
    } else{
    return My name is ${name}, I am 8 years old
    }
    调用:getInfo('Jocelyn',12) 或者 getInfo('Jocelyn')
    若有默认参数
    var getInfo(name:string,age:number=3):string{
    return My name is ${name}, I am ${age} years old
    }
    调用:getInfo('Jocelyn',12) 或者 getInfo('Jocelyn')
    传递可替换,不传递,显示默认数据
    3.剩余参数案例 三点运算符接收形参传递的值
    function sum(...result: number[]): number {
    var sum = 0;
    for (let i = 0; i < result.length; i++) {
    sum += result[i];
    }
    return sum;
    }
    调用:sum(1, 3, 5, 6, 8)
    若此外还带有特地参数
    function sum1(a: number, b: number, ...result: number[]): number {
    var sum = a + b; //此处等于固定参数
    for (let i = 0; i < result.length; i++) {
    sum += result[i];
    }
    return sum;
    }
    sum1(1,3,5,6,8) ------a为1,b为 3, ab必须是number

    // 函数的重载
    // Java中方法的重载:重载是指两个或以上同名函数,但他们的参数不一样,这时会出现函数重载的情况
    // typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。
    // ts为了兼容es5及es6重载的写法和java中有区别
    // es5中如果出现两个同名的函数,那么第二个函数会替换第一个函数
    // ts中的重载
    function getInfoA(name: string): string;
    function getInfoA(name: number): number;
    function getInfoA(str: any): any {
    if (typeof str === "string") {
    return "i am " + str;
    } else {
    return "i am " + str + ' years old.'
    }
    }
    console.log(getInfoA('amy')) //结果----i am amy
    console.log(getInfoA(22)) //结果----i am 22 years old.

    function getInfoB(name: string): string;
    function getInfoB(name: string, age: number): string;
    function getInfoB(name: any, age?: any): any {
    if (age) {
    return "i am " + name + ', i am ' + age + ' years old';
    } else {
    return "i am " + name
    }
    }
    // console.log(getInfoB('amy', 33)) //结果----i am amy, i am 33 years old
    // console.log(getInfoB('emily')) //结果----i am emily.
    // 结论:同样的方法,传入不同参数,得到不同的结果

  • 相关阅读:
    java例程练习(多态/动态绑定/迟绑定)
    java例程练习(对象转型及instanceof关键字)
    java例程练习(对象类型数据的排序)
    java例程练习(数三退一[用数组模拟])
    SSL协议与数字证书原理
    SSL和数字证书服务慨述(3)
    数字证书介绍
    SSL和数字证书服务慨述(1)
    SSL和数字证书服务慨述(2)
    如何设置word页脚中的总页码
  • 原文地址:https://www.cnblogs.com/jocelyn11/p/14421473.html
Copyright © 2011-2022 走看看