普通类型

类型注解

  • 原始类型

    const <name>:<type> = <value>
    类型名
    number
    string
    boolean
    null
    undefined
    symbol
  • 数组类型

    const <name>:<type>[] = [<value1>,<value2>]
    const <name>:Array<<type>> = [<value1>,<value2>]

    元组

    确切的知道包含多少个元素,对应什么类型

    const <name>:[<type>,<type>] = [<value1>,<value2>]
  • 联合类型

    可以由多个类型的组合

    const <name>:(<type1> | <type2>) = <value>
  • 类型别名

    自定义类型,为他取别名

    type <typeName> = (<type1> | <type2>)[]
    let <name>:<typeName> = []
  • 函数

    function <functionName>(<name>:<type>):<type>{}

    提前指定函数整个类型

    const <functionName>:(<name1>:<type1>,<number2>:<type2>) => <return type> = (<name1>,<name2>)=> {return}

    可选参数

    function <functionName>(<name>?:<type>):<type>{}
  • 对象

    如果多行可以不用写分号

    const <name>:{<name1>:<type1>;<name2>:<type2>}={}
  • 接口

    interface <name>{
    <name>:<type>
    }

    继承

    interface <interface1> {<name1>:<type>}
    interface <interface2> extends <interface1> {<name2>:<type>}
  • 类型断言

    as后面是一个更加具体的类型

    通过console.dir()打印中的原型可以看到元素的具体属性

    const <name> = <value> as <type>
    const <name> = <<type>><value>
  • 字面量类型

    一个明确的值就是字面量类型

    使用模式配合联合类型使用表示一组明确的值

  • 枚举

    枚举成员的值默认从0开始自增加

    定义一组命名常量

    enum <name> {<name1>,<name2>}

    访问枚举成员

    <enumName>.<name>
  • any类型

    当值为any类型时,可以对该值进行任意操作,且没有代码提示

    具有any类型的情况

    1. 声明变量不提供类型也不提供默认值
    2. 函数参数不加类型

类型推论

某些没有明确指出类型的地方,TS的类型推断机制会帮助提供类型

  1. 声明变量初始化时
  2. 决定返回值时

获取类型上下文

typeof <name>
  1. 可以出现在函数注解的后面