TypeScript 素描 - 函数

 

/*
函数和javaScript并没有太大差别,只是增加了额外的功能,使函数有
更为强大的功能而且更易用使用
*/

//现在支持函数的参数指定类型,在前面的博文中大家应该已经看到
//还可以指定函数的返回值 
function fun7(x: number, y: number): number {
    return x + y;
}

let myadd = function (x: number, y: number): number { return x + y; };

/*可选参数与默认参数*/
function fun8(x?: number, y: number = 8): void { };
//一个可选参数,一个默认参数 都不传也没有关系
fun8();

/*剩余参数,在之前的代码中也有写到
用.,.来表达剩余的参数,但需要是数组类型
*/
function fun9(arg1: string, arg2: string, ...args: string[]) { };
fun9("1", "2", "3", "4", "5");


/*箭头函数/拉姆达表达式
用过的都知道它的酸爽,简单的语法不说.还可以消除JavaScript的this
问题,提起this就是噩梦,到现在也不知道 this到底是谁
*/
let fun10 = (x: number, y: number): number => {
    return x + y;
}


/**
 * 函数的重载也是非常有趣,可以看到和C#中的完全不一样
 * 前两个方法只是定义方法的签名, 最后一个是对前两个的
 * 方法的处理,最后一个不算是方法 只是实现
 */

function pickCard(x: string): string
function pickCard(x: number): number
function pickCard(x): any {
    if (typeof x == "string") {
        return "string result";
    }
    if (typeof x == "number") {
        return 1;
    }
}
pickCard(1);
pickCard("1");
posted @ 2017-01-06 11:44  liangshiwei  阅读(219)  评论(0编辑  收藏  举报