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'));
    
    })()
    
  • 相关阅读:
    魔兽争霸RPG地图开发教程2
    魔兽争霸RPG地图开发教程1
    php mysql decimal 多余的0 解决方案
    windows下创建子进程过程中代码重复执行问题
    python多进程的理解 multiprocessing Process join run
    进程和线程的概念、区别和联系
    Python中的魔术方法详解(双下方法)
    socketserver源码剖析
    Socketserver详解
    全网最详细python中socket套接字send与sendall的区别
  • 原文地址:https://www.cnblogs.com/xujinglog/p/14632475.html
Copyright © 2011-2022 走看看