zoukankan      html  css  js  c++  java
  • TS学习笔记--函数

    函数

    // 函数:封装了一些重复使用的代码,在需要的时候直接调用即可
    (()=>{
        // 1、js函数书写
        // // 函数声明,命名函数
        // function add (x,y){
        //     return x+y
        // }
    
        // // 函数表达式,匿名函数
        // const add2 = function(x,y){
        //     return x+y
        // }
    
        // 2、ts函数书写
        // 函数声明,命名函数
        // ()中的内容代表xy的参数类型都是字符,小括号后的参数代表函数的返回值类型
        function add (x:string,y:string):string{
            return x+y
        }
        const result:string = add('111','222')
        console.log(result);
        
        // 函数表达式,匿名函数
        // 函数中的x和y参数的类型都是number类型的,小括号后面的代表返回的为number类型
        const add2 = function(x:number,y:number):number{
            return x+y
        }
        console.log(add2(10,20));
        
        // 函数完整的写法
        // add3代表变量名
        // (x:number,y:number)=>number 代表当前函数的类型
        // function(x:number,y:number):number 符合这个函数类型的值
        const add3:(x:number,y:number)=>number=function(x:number,y:number):number {
            return x+y
        }
        console.log(add3(10,100));
        
    
    })()
    

    可选参数

    // 可选参数:函数在声明的时候,使用 ? 进行修饰,该参数可传可不传
    // 默认参数:函数在声明的时候,内部的参数有自己的默认值,及时默认参数
    
    (()=>{
        // 定义一个函数:传入姓氏和名字,可以得到姓名(姓名+名字=姓名)
        // 需求:如果不传入任何内容,那么返回默认的姓氏
        // 需求:如果只传入姓氏,那么就返回姓氏
        // 需求:如果传入姓氏和名字,那么返回来的就是姓名
        const getFullName = function(firstName:string='黄',lastName?:string):string{
            if(lastName){
                return firstName + '_' + lastName
            }else{
                return firstName
            }
        }
    
        // 函数调用
        // 什么也不传入
        console.log(getFullName());
        // 只传入姓氏
        console.log(getFullName('诸葛'));
         // 传入姓氏+姓名
        console.log(getFullName('诸葛','亮'));
    
    })()
    

    剩余参数

    // 剩余参数(rest参数)
    (()=>{
        // ...args:string[] ----> 剩余参数,放在一个字符串数组中
        function showMsg(str:string,...args:string[]){
            console.log(str);
            console.log(args);
            
        }
        showMsg('a','b','c','d')
    })()
    

    函数重载

    // 函数重载:函数名字相同,函数的参数及个数不同
    // 我们有一个add函数,它可以接收2个string类型的参数进行拼接,也可以接收2个number类型的参数进行相加 
    (()=>{
        // 函数重载声明
        function add(x:string,y:string):string
        function add(x:number,y:number):number
        function add(x:string|number,y:string|number):string|number{
            if(typeof x ==='string' && typeof y==='string'){
                return x +y
            } else if(typeof x === 'number' && typeof y === 'number'){
                return x +y
            }
            // return x + y 
        }
    
        // 参数类型一致
        console.log(add('1','1'));
        // 参数类型不一致,希望ts给我提示出错误
        // console.log(add(1,'1'));
    
    })()
    
  • 相关阅读:
    Salesforce和SAP Netweaver里数据库表的元数据设计
    Salesforce平台支持多租户Multi tenant的核心设计思路
    S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析
    S/4HANA生产订单的标准状态和透明工厂原型状态的映射
    1048. Find Coins (25)
    1101. Quick Sort (25)
    1009. Product of Polynomials (25)
    pta 奇数值结点链表&&单链表结点删除
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
  • 原文地址:https://www.cnblogs.com/xujinglog/p/14632475.html
Copyright © 2011-2022 走看看