美文网首页
TypeScript(八):类型别名和类型断言

TypeScript(八):类型别名和类型断言

作者: 林ze宏 | 来源:发表于2021-05-09 18:06 被阅读0次
    • 类型别名,使用 type 关键字
    function sum(x: number, y: number): number {
      return x + y
    }
    const sum2: (x: number, y: number) => number = sum;
    

    上面 sum2 函数类型定义很麻烦,可以使用类型别名:

    type PlusType = (x: number, y: number) => number;
    
    function sum(x: number, y: number): number {
      return x + y
    }
    
    const sum2: PlusType  = sum;
    

    类型别名,最常用的是使用联合类型

    type NameResolver = () => string;
    type NameOrResolver = string | NameResolver; // 联合类型
    
    // 如果参数是字符串,则直接返回,如果是方法,则执行方法
    function getName(n: NameOrResolver): string {
      if (typeof n === 'string') {
        return n
      } else {
        return n()
      }
    }
    
    • 类型断言
      类型断言,大概意思就是说,本人比编译器更加清楚类型;如果断言成不存在的类型,是会报错的。
    function getLength(input: string | number) : number {
      const str = input as String // 类型断言,本人比编译器更加清楚类型
      if (str.length) {
        return str.length
      } else {
        const number = input as Number
        return number.toString().length
      }
    }
    

    另外一种方式写法:

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

    相关文章

      网友评论

          本文标题:TypeScript(八):类型别名和类型断言

          本文链接:https://www.haomeiwen.com/subject/svqwrltx.html