ts有哪些数据类型

ts有哪些数据类型
ts的数据类型有:布尔值、数字、字符串、数组、元组、枚举、any、void、null和undefined、never、object

  • 布尔值:
    let bool: boolean = false;

  • 数字:
    let num: number = 5;

  • 字符串:
    let name: string = “bob”;
    还可以使用模版字符串,它可以定义多行文本和内嵌表达式。 这种字符串是被反引号包围( `),并且以${ expr }这种形式嵌入表达式

    let name: string = `Gene`;
    let age: number = 37;
    let sentence: string = `Hello, my name is ${ name }.I'll be ${ age + 1 } years old next month.`;
    
  • 数组:
    有两种方式可以定义数组
    第一种:可以在元素类型后面接上[]

       let list: number[] = [1, 2, 3];
    

    第二种:使用数组泛型,Array<元素类型>

      let list:Array<number>= [1,2,3]
    
  • 元组:
    元组类型允许表示一个一直元素数量和类型的数组,个元素的类型不必相同

    let x: [string, number];
    *// Initialize it*
    x = ['hello', 10]; *// OK*
    *// Initialize it incorrectly:初始化不正确*
    x = [10, 'hello']; *// Error*
    

    当访问一个已知索引的元素,会得到正确的类型:

       console.log(x[0].substr(1)); // OK
       console.log(x[1].substr(1)); // Error, 'number' does not have 'substr'
    

    当访问一个越界的元素,会使用联合类型替代:

      x[3] = 'world'; *// OK, 字符串可以赋值给(string | number)类型*
    
      console.log(x[5].toString()); *// OK, 'string' 和 'number' 都有 toString*
    
      x[6] = true; *// Error, 布尔不是(string | number)类型*
    
  • 枚举(enum)

      enum Color {Red, Green, Blue}
      let c: Color = Color.Green;
    
  • any
    为那些在编程阶段还不清楚类型的变量指定一个类型

     let notSure: any = 4;
     notSure = "maybe a string instead";
     notSure = false; // okay, definitely a boolean
    

    Object类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法

     let notSure: any = 4;
     notSure.ifItExists(); // okay, ifItExists might exist at runtime
     notSure.toFixed(); // okay, toFixed exists (but the   compiler doesn't check)
    
     let prettySure: Object = 4;
     prettySure.toFixed(); // Error: Property 'toFixed' doesn't exist on type 'Object'.
    

    只知道一部分数据的类型时,any类型也是有用的

       let list: any[] = [1, true, "free"]
       list[1] = 100;
    
  • void
    与any类型相反,表示没有类型
    当一个函数没有返回值时,你通常会见到其返回值类型是 void

       function warnUser(): void {
       console.log("This is my warning message");
        }
    
  • null 和undefined

      let u: undefined = undefined;
      let n: null = null;
    

    可以把 null和undefined赋值给number类型的变量,当你指定了–strictNullChecks标记,null和undefined只能赋值给void和它们各自。 这能避免 很多常见的问题。 也许在某处你想传入一个 string或null或undefined,你可以使用联合类型string | null | undefined

  • never
    never类型表示的是那些永不存在的值的类型
    never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never

  • object
    表示非原始类型

     declare function create(o: object | null): void;
     create({ prop: 0 }); // OK
     create(null); // OK 
     create(42); // Error
     create("string"); // Error
     create(false); // Error
     create(undefined); // Error
    
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值