TypeScript 联合类型(|)、类型断言(<>、as)

212 阅读1分钟
  • 联合类型(Union Types):表示取值可以为多种类型中的一种,多个类型之间用 | 分隔开

  • 类型断言:

    通过断言的这种方式,告诉编译器,我知道自己在做什么,类型断言好比其他语言里的类型转换,但是不进行特殊的数据检查和解构。它没有运行时的影响。TypeScript 会假设你已经进行了必须的检查。

    • 方式一:<类型>值

    • 方式一:值 as 类型

    • 两种方式是等价的,用哪个凭个人爱好即可,但是当在 TypeScript 里使用 JSX 时,只有 as 语法断言是被允许的。

  • 举例

    // 获取字符串长度
    function getLength (v: number | string): number {
      if ((<string>v).length) {
        // string 类型
        return (v as string).length
      } else {
        // number 类型
        return v.toString().length
      }
    }
    // 使用
    getLength(1234567)
    getLength('1234567')