zoukankan      html  css  js  c++  java
  • 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; };

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

  • 相关阅读:
    三种方法使HTML单页面输入密码才能访问
    JAVA知识汇总
    session 一致性的解决方案
    Debian 9 Stretch国内常用镜像源
    Java开发工具推荐
    Centos配置vsftpd
    [转]php实时输出内容
    php javascript comet
    使用安装 php-memcache-client
    [转]网页实时聊天之js和jQuery实现ajax长轮询 PHP
  • 原文地址:https://www.cnblogs.com/AndyChen2015/p/9618467.html
Copyright © 2011-2022 走看看