TypeScript 函数

作者: 楼上那位 | 来源:发表于2017-05-02 10:27 被阅读199次

    1 . 函数的定义

    
    let myAdd = function(x:number,y:number):number {
        return x+y;
    }
    let myAdd2:(baseValue:number,incrementValue:number)=> number  = function (x,y){
        return x+y;
    }
    

    2 . 可选参数 ?必须放在必选参数之后

    function add(x:number,y:number,c?:number){
     ...
    }
    

    3 . 默认参数
    与普通可选参数不同的是,带默认值的参数不需要放在必须参数的后面。 如果带默认值的参数出现在必须参数前面,用户必须明确的传入undefined值来获得默认值
    4 . 剩余参数

    function buildName(firstName: string, ...restOfName: string[]) {
      return firstName + " " + restOfName.join(" ");
    }
    
    let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");
    

    5 . 只要是不确定 this 的使用地方 均用箭头函数

    6 . 重载

    let suits = ["hearts", "spades", "clubs", "diamonds"];
    
    function pickCard(x: {suit: string; card: number; }[]): number;
    function pickCard(x: number): {suit: string; card: number; };
    function pickCard(x): any {
        // Check to see if we're working with an object/array
        // if so, they gave us the deck and we'll pick the card
        if (typeof x == "object") {
            let pickedCard = Math.floor(Math.random() * x.length);
            return pickedCard;
        }
        // Otherwise just let them pick the card
        else if (typeof x == "number") {
            let pickedSuit = Math.floor(x / 13);
            return { suit: suits[pickedSuit], card: x % 13 };
        }
    }
    
    let myDeck = [{ suit: "diamonds", card: 2 }, { suit: "spades", card: 10 }, { suit: "hearts", card: 4 }];
    let pickedCard1 = myDeck[pickCard(myDeck)];
    alert("card: " + pickedCard1.card + " of " + pickedCard1.suit);
    
    let pickedCard2 = pickCard(15);
    alert("card: " + pickedCard2.card + " of " + pickedCard2.suit);
    

    注意,function pickCard(x): any并不是重载列表的一部分,因此这里只有两个重载:一个是接收对象另一个接收数字。 以其它参数调用pickCard会产生错误。

    相关文章

      网友评论

        本文标题:TypeScript 函数

        本文链接:https://www.haomeiwen.com/subject/rtlctxtx.html