zoukankan      html  css  js  c++  java
  • TypeScript学习笔记—函数

    函数定义

    在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expression):

    // 函数声明(Function Declaration)
    function sum(x, y) {
        return x + y;
    }
    
    // 函数表达式(Function Expression)
    let mySum = function (x, y) {
        return x + y;
    };

    函数声明

    一个函数有输入和输出,要在 TypeScript 中对其进行约束,需要把输入和输出都考虑到,其中函数声明的类型定义较简单:

    function sum(x: number, y: number): number {
        return x + y;
    }

    函数表达式

    typescript中函数表达式(Function Expression)的完整写法是:

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

    如果你在赋值语句的一边指定了类型但是另一边没有类型的话,TypeScript编译器会自动识别出类型(类型推断):

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

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

    注意不要混淆了 TypeScript 中的 => 和 ES6 中的 =>

    在 TypeScript 的类型定义中,=> 用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。

    在 ES6 中,=> 叫做箭头函数,应用十分广泛,可以参考 ES6 中的箭头函数

    可选参数及默认参数

    // 可选参数
    function createUserId(name: string, age?: number, 
      id: number): string {
        return name + id;
    }
    
    // 默认参数
    function createUserId(name: string = 'Semlinker', age?: number, 
      id: number): string {
        return name + id;
    } 

    剩余参数

    function push(array, ...items) {
      items.forEach(function(item) {
        array.push(item);
      });
    }
    
    let a = [];
    push(a, 1, 2, 3);

    参考:

    TypeScript 简介

    函数的类型

  • 相关阅读:
    读取XML字符串到临时表
    Golang学习笔记
    Golang环境配置Centos
    IntelliJ Idea 常用快捷键列表
    Elasticsearch的Groovy Script自定义评分检索
    MSSQL读取xml字符串到临时表
    通过反射给对象属性动态赋值总结(含可空属性)
    。。。。。
    指定位置输出函数
    DBhelper
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/8968177.html
Copyright © 2011-2022 走看看