类型注解
-
原始类型
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类型的情况
- 声明变量不提供类型也不提供默认值
- 函数参数不加类型
类型推论
某些没有明确指出类型的地方,TS的类型推断机制会帮助提供类型
- 声明变量初始化时
- 决定返回值时
获取类型上下文
typeof <name>
- 可以出现在函数注解的后面