zoukankan      html  css  js  c++  java
  • typeScrip(四)函数

      和 javascript 一样,typeScript 中的函数可以创建有名字的函数和匿名函数。

      

      函数类型

        function 函数,

    function add(x: number, y: number): number {
       return x + y + 0      
    }
    

         其中,x:number , y:number 定义的是参数的数据类型; 后面的那个定义的是函数的类型,如果函数没有返回值的话,一般默认返回的都是 void,因此为了书写的规范,最好就是即使没有返回值,也要指定一下函数类型是 void 而不要给留空;代码中返回 x + y + 0 是为了进行隐式的转换,

        完整的定义其实是应该这样的

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

         但是这样蛮繁琐的,typeScript 中存下推断类型,typeScript 编译器会自动识别出类型

      推断类型

        如上,如果定义函数的时候一边定义的类型,另一边没有指定类型的话,编译器就会自动的进行识别,这就是类型推论中的一种:“按上下文归类”

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

        

      可选参数和默认参数

        在 typeScript 中,传递的函数参数个数必须和期望的参数个数是一样的,即实参和形参必须一致; 在 typeScript 中每个函数参数都是必须的,这并不是说不能传递 null 或者 undefined 作为参数,二十编译器检查用户是够为每个参数都传入了值。

        在 javaScript 中,参数是可传也可不传的,也就是说是可选的,如果没有传值的话,他的值就是 undefined ;在 typeScript 中如果想要实现这个效果,即参数是可选填的,只用我们在定义的时候在形参的边上使用 “?” 就可以实现;可选参数必须跟在必填参数的后边。在 typeScript 中也是可以传递默认参数的,如下这样 x 就和 2 共享数据类型

                function add(x: 2, y?:number): number { return x + y }
    

      剩余参数

        在 javaScript 中,我们可以通过 arguments 来访问所有的参数,但是在 typeSript 中,不支持,但是我们可以 “...” 来将所有的参数放在一个变量里,例如:

                function add(x: number, ...y: number[]) {
                   let sum:number = 0
                   y.map(item => { sum += item })
                   return  x +sum
                }
    

      this 和 箭头函数

        

  • 相关阅读:
    Scrum是脆弱的,不敏捷的
    Solr 全文搜索
    Java并发之线程封闭
    Java中的关键字synchronized
    Java并发框架:Executor
    锁,表锁,行锁,页锁,共享锁,排他锁
    事务及事务隔离
    MySql存储引擎:innodb myisan memory
    树,二叉树
    B树(B-树) 、B+树
  • 原文地址:https://www.cnblogs.com/mufc/p/11231329.html
Copyright © 2011-2022 走看看