普通类型
类型注解
-
原始类型
TEXT1const <name>:<type> = <value>
类型名 number string boolean null undefined symbol -
数组类型
TEXT1const <name>:<type>[] = [<value1>,<value2>]
TEXT1const <name>:Array<<type>> = [<value1>,<value2>]
元组
确切的知道包含多少个元素,对应什么类型
TEXT1const <name>:[<type>,<type>] = [<value1>,<value2>]
-
联合类型
可以由多个类型的组合
TEXT1const <name>:(<type1> | <type2>) = <value>
-
类型别名
自定义类型,为他取别名
TEXT12type <typeName> = (<type1> | <type2>)[] let <name>:<typeName> = []
-
函数
TEXT1function <functionName>(<name>:<type>):<type>{}
提前指定函数整个类型
TEXT1const <functionName>:(<name1>:<type1>,<number2>:<type2>) => <return type> = (<name1>,<name2>)=> {return}
可选参数
TEXT1function <functionName>(<name>?:<type>):<type>{}
-
对象
如果多行可以不用写分号
TEXT1const <name>:{<name1>:<type1>;<name2>:<type2>}={}
-
接口
TEXT123interface <name>{ <name>:<type> }
继承
TEXT12interface <interface1> {<name1>:<type>} interface <interface2> extends <interface1> {<name2>:<type>}
-
类型断言
as后面是一个更加具体的类型
通过console.dir()打印中的原型可以看到元素的具体属性
TEXT1const <name> = <value> as <type>
TEXT1const <name> = <<type>><value>
-
字面量类型
一个明确的值就是字面量类型
使用模式配合联合类型使用表示一组明确的值
-
枚举
枚举成员的值默认从0开始自增加
定义一组命名常量
TEXT1enum <name> {<name1>,<name2>}
访问枚举成员
TEXT1<enumName>.<name>
-
any类型
当值为any类型时,可以对该值进行任意操作,且没有代码提示
具有any类型的情况
- 声明变量不提供类型也不提供默认值
- 函数参数不加类型
类型推论
某些没有明确指出类型的地方,TS的类型推断机制会帮助提供类型
- 声明变量初始化时
- 决定返回值时
获取类型上下文
TEXT
1
typeof <name>
- 可以出现在函数注解的后面