• TypeScript 函数 (五)


    传递给一个函数的参数个数必须与函数期望的参数个数一致。

    参数类别:

    • 必须参数
    • 可选参数 :可选参数必须在参数后面。
    • 默认参数 :当用户没有传递这个参数或传递的值是undefined时。 它们叫做有默认初始化值的参数

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

    function buildName(firstName = "Will", lastName: string) {
        return firstName + " " + lastName;
    }
    
    let result1 = buildName("Bob");                  // error, too few parameters
    let result2 = buildName("Bob", "Adams", "Sr.");  // error, too many parameters
    let result3 = buildName("Bob", "Adams");         // okay and returns "Bob Adams"
    let result4 = buildName(undefined, "Adams");     // okay and returns "Will Adams"

    1、TypeScript函数可以创建有名字的函数和匿名函数。

    // Named function
    function add(x, y) {
        return x + y;
    }
    
    // Anonymous function
    let myAdd = function(x, y) { return x + y; };

    函数类型:为函数定义类型

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

    书写完整函数类型

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

    函数类型包含两部分:参数类型和返回值类型。

    只要参数类型是匹配的,那么就认为是有效的函数类型,而不在乎参数名是否正确。

    如果函数没有返回任何值,你也必须指定返回值类型为 void不能留空

    推断类型

    尝试这个例子的时候,你会发现如果你在赋值语句的一边指定了类型但是另一边没有类型的话,TypeScript编译器会自动识别出类型:

    / myAdd has the full function type
    let myAdd = function(x: number, y: number): number { return x + y; };
    
    // The parameters `x` and `y` have the type number
    let myAdd: (baseValue: number, increment: number) => number =
        function(x, y) { return x + y; };

    这叫做“按上下文归类”,是类型推论的一种。 它帮助我们更好地为程序指定类型。

  • 相关阅读:
    WebUpLoder 能自动预览,能多实例,包括后台demo
    ajax请求总是进入Error里
    c#_1:后台post请求
    Echarts_1:水平柱体
    Hello World!
    python正则表达式
    python web.py出现ValueError: need more than 1 value to unpack
    web.py端口被占用的错误
    github commit时出现 Please tell me who you are.以及项目名称管理
    打飞机小游戏 python+pygame
  • 原文地址:https://www.cnblogs.com/AndyChen2015/p/9618467.html
Copyright © 2020-2023  润新知