likes
comments
collection
share

TypeScript-起步——TypeScript类型(一)

作者站长头像
站长
· 阅读数 19

1、类型

① JavaScript和TypeScript的数据类型

  1. 我们经常说TypeScript是JavaScript的一个超级:

    TypeScript-起步——TypeScript类型(一)

② JavaScript类型

Ⅰ. number类型

  1. 数字类型是我们开发中经常使用的类型,TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型。

    let num: number = 123
    num = 456 // 整数类型
    num = 7.89 // 浮点类型
    
  2. 如果你学习过ES6应该知道,ES6新增了二进制和八进制的表示方法,而TypeScript也是支持二进制、八进制、十六进制的表示:

    let num: number = 123
    num = 100 // 十进制
    num = 0b110 // 二进制
    num = 0o555 // 八进制
    num = 0xf2311 // 十六进制
    

Ⅱ. boolean类型

  1. boolean类型只有两个取值:true和false,非常简单

    let flag: boolean = false;
    flag = true // boolean 类型
    flag = 20 > 30 // 表达式
    

Ⅲ. string类型

  1. string类型是字符串类型,可以使用单引号或者双引号表示:

    const username: string = 'liangshuang'
    const sex: string = 'male'
    
  2. 同时也支持ES6的模板字符串来拼接变量和字符串:

    const username: string = 'liangshuang'
    const age: number = 21
    const sex: string = 'male'
    
    const info: string = `my name is ${username}, age is ${age}, sex is ${sex}`
    

Ⅳ. Array类型

  1. 数组类型的定义也非常简单,有两种方式:

    • 写法一:const arr: 类型注解[] (推荐!)

    • 写法二: const arr: Array<类型注解>(不推荐!因为这种写法在jsx语法中是有冲突的)

      const arr1: string[] = ['1', '2', '3']
      const arr2: Array<string> = ['a', 'b', 'c']
      
      arr1.push('4')
      arr2.push('d')
      
      console.log(arr1);
      console.log(arr2);
      
  2. 如果添加其他类型到数组中,那么会报错:

    TypeScript-起步——TypeScript类型(一)

Ⅴ. Object类型

  1. object对象类型可以用于描述一个对象:

    const user = {
      username: 'liangshuang',
      age: 21,
      sex: 'male',
    }
    
    console.log(user.username);
    user.age = 40
    
  2. 不需要指定对象的类型,他自己就会推断出内部属性的类型:

    TypeScript-起步——TypeScript类型(一)

    注意: 也可以自己规定对象的类型,但是不推荐,

    • 因为无法推断出内部属性的类型:

      const user: object = {
        username: 'liangshuang',
        age: 21,
        sex: 'male',
      }
      

      TypeScript-起步——TypeScript类型(一)

  • 并且从对象中我们不能获取数据,也不能设置数据:

    TypeScript-起步——TypeScript类型(一)

    TypeScript-起步——TypeScript类型(一)

Ⅵ. Symbol类型

  1. 在ES5中,如果我们是不可以在对象中添加相同的属性名称的,比如下面的做法:

    TypeScript-起步——TypeScript类型(一)

    TypeScript-起步——TypeScript类型(一)

  2. 通常我们的做法是定义两个不同的属性名字:比如identity1和identity2。

  3. 但是我们也可以通过symbol来定义相同的名称,因为Symbol函数返回的是不同的值:

    const title1: symbol = Symbol('title')
    const title2: symbol = Symbol('title')
    
    const info = {
      [title1]: '程序员',
      [title2]: '老师'
    }
    

Ⅶ. null和undefined类型

  1. 在 JavaScript 中,undefined 和 null 是两个基本数据类型。

  2. 在TypeScript中,它们各自的类型也是undefined和null,也就意味着它们既是实际的值,也是自己的类型:

    const n: null = null
    const u: undefined = undefined
    

    注意: 其他的类型也可以赋值为null,例如:const s: string = null,但是只有在非严格模式下才可以,默认node环境中是严格模式,后面会在tsconfig.json文件中进行配置。

转载自:https://juejin.cn/post/7133844015006351368
评论
请登录