二.ts基础类型

ts的基础类型包含js的基础类型和ts独有的基础类型
我们一般使用[let | const | val] 变量:类型 = 值的方式声明一个带有类型的变量

  1. string
    let val:string = '1'
    
  2. number
    let val:number= 1
    
  3. boolearn
    let val:boolaern= false
    
  4. undefind
    let val:undefind= undefind
    
  5. null
    let val:null= null
    
  6. symbol
    let val:symbol= Symbol('1')
    
  7. any
    TypeScript 允许我们对 any 类型的值执行任何操作,而无需事先执行任何形式的检查。所以如果你给变量定义了any类型则相当于你直接使用js进行开发。一般我们做项目迁移从js转ts的时候,为了避免大部分变量报错我们会使用any类型。日常开发中,该类型应该慎用。
    let anyVal:any = 1
    anyVal = '1'
    anyVal = {
          
          }
    
    以上结果都不会报错。
  8. unknown
    unknown 类型和any类型从某种意义上来说是极为相似的。定义一个unknown 类型的变量也可以赋任何值
    let unknownVal: unknown  = 1
    unknownVal = '1'
    unknownVal = {
          
          }
    
    但是他也有与any类型不同之处。它只能被赋值给any或者unknown 类型的变量
    let unknownVal1: unknown  = unknownVal
    let unknownVal2: any  = unknownVal
    let unknownVal3: number  = unknownVal  //报错
    
  9. void
    某种程度上来说,void 类型像是与 any 类型相反,它表示没有任何类型。当一个函数没有返回值时,你通常会见到其返回值类型是 void
    // 声明函数返回值为void
    function warnUser(): void {
          
          
      console.log("This is my warning message");
    }
    

    需要注意的是,声明一个 void 类型的变量没有什么作用,因为在严格模式下,它的值只能为 undefined

  10. never
    never 类型表示的是那些永不存在的值的类型。 常见的使用场景是在表达式(如函数)的返回类型,表示它们永远不会正常返回(即陷入死循环、抛出异常等),或在类型推断中返回不可能出现的类型。
    function assertNever(x: never): never {
          
          
      throw new Error("Unexpected object: " + x);
    }
    
    function colorFromCode(code: string): "red" | "blue" | "green" {
          
          
      switch (code) {
          
          
        case "R": return "red";
        case "B": return "blue";
        case "G": return "green";
        default: return assertNever(code);
      }
    }
    

猜你喜欢

转载自blog.csdn.net/qq_44473483/article/details/134857944