使用type类型别名

    1. function sum(x:number,y:number):number{
    2. return x+y
    3. }
    4. const sum1:(x:number,y:number)=>number = sum
    5. type PlusType = (x:number,y:number)=>number
    6. const sum2:PlusType = sum

    类型断言

    type NameResolver = ()=>string
    type NameOrResolver = string | NameResolver
    
    function getName(input:NameOrResolver):string{
        if(typeof input==='input'){
          return input
      }else{
          return input()
      }
    }
    

    使用as做类型转换

    function getLength(input:string|number):number{
        let str = input as String
      if(str.length){
          return str
      }else{
          let num = input as Number
        return num.toString().length
      }
    }
    

    使用泛型来转换

    function getLength(input:string|number):number{
        if((<string>input).length){
          return (<string>input).length
      }else{
             return input.toString().length
      }
    }