这是我参与「第四届青训营 」笔记创作活动的第2天
一、类型注解
类型注解是指可以给TS中的变量添加类型约束,它可以避免错误的数据类型被赋给变量。如果把一个String类型的变量赋给一个添加了number类型约束的变量,编译器会报错。类型注解使用如下:
let k:number = 18
在上面的代码中,let是变量声明符(后面会讲),k是变量名,:number是类型注解,在这里,number表示k是一个number类型的变量,18是变量的初始值,‘=’是赋值运算符(把赋值也当作一种运算),会将18这个值赋给number。
二、变量类型
TS中的数据有number、string等类型。
1、JS已有类型
TS继承了JS中原有的类型,分别是
JS原始类型:number/string/boolean/null/undefined/symbol
object:(包括,数组、对象、函数等对象)
这些类型用法和JS差别不大,这里不做赘述。
2.新增类型
联合类型:
当我们认为一个变量的值可能是不同类型,我们就把它限为联合类型。
例如,当我们认为一个变量的值可能是number类型也可能是string类型时,我们定义变量k:
let k:number|string=1
自定义类型:
当我们需要自定义类型或者嫌弃类型名过长时,我们可以自定义类型。使用type关键字。
type k=nmuber;
以上代码定义了一个k类型,与number类型相同。
枚举类型:
与java、c、c++里的差不多,不做赘述。
字面量类型:
配合联合类型使用,但取值都是字面量。
元组(Truple):
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
any:
有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。那么我们可以使用any类型来标记这些变量。