ts概述、ts环境准备和编译、ts类型声明

支持与几乎相同的数据类型 , 此外还提供了自己特有的一些类型 。
注意:
ts中默认提供的内置类型 , 在指定时一定要全小写 , 例如:
null
any
自定义类型时 , 可能是大写
3.1 布尔值
// 手动类型声明// 声明一个变量 , 指定它的类型为boolean , 此时 , 此变量只能赋值布尔类型的值let arg:booleanarg = true// 自动类型声明// 右侧决定左侧类型直接给变量赋值 , ts编译器会在编译时 , 根据右侧的值类型来赋值给左侧变量类型// 工作中用的多 , 如 , 给一个默认值同时就给当前的这个参数一个类型let arg1 = true
3.2 数字类型
// 先声明类型  , 再赋值let arg:numberarg=1// 自动类型赋值let arg1 = 2
也可以复制其他进制的数字类型:
3.3 字符串类型
// 先声明类型  , 再赋值let arg: stringarg = 'hello'// 自动类型赋值let arg1 = 'hello'
3.4 any和
any和 , 它俩都表示任意类型 ,  是 ts3.x 后提供的 , 而 any 一开始就有 。
两者区别:
我们可以对any类型进行任何操作 , ts不需要进行检查类型 , 赋值的类型对于ts编译器来说就不重要了 , 相当于在ts中写js , 所以少用 , 类型不安全 。
是any的安全类型 , 只能被赋值本身 , 本身赋值是随意的 , 但是在调用的时候 , 会进行类型检查  , 所以需要类型断言 , 才能用 。一般会它来完成类型的转换工作:类型 =>=> 类型 。
// === any 任意类型let arg1: anyarg1 = 1arg1 = 'zhangsan'arg1 = true// arg1它是一个any , 调用它的print方法arg1.print()arg1.length// === unknown 任意类型let arg2: unknownarg2 = 1arg2 = 'zhangsan'arg2 = true// 在any中是可以 , ts不检查 , js通过 , 但是unknown用时类型的检查 , 看一下当前类型中有没有此方法或属性 没有print报错// arg2是一个unknown , 未知类型 , 不知道现在有没有print方法 , 不知道就报错 , unknown比any要安全的地方// 报错// arg2.print()// arg2.length
3.5 void、null、
void:
它表示没有任何类型, 声明一个void类型的变量没有什么大用 , 因为你只能为它赋予 , 一般多用于函数返回值指定 。
和null:
两者各自有自己的类型分别叫做和null 。和 void 相似 , 它们的本身的类型用处不是很大 。
// void 一般用于【函数返回值类型中指定】 , 表示当前的函数没有返回值 , 也可以用来指定变量 , 表示此变量为undefined// null类型/undefined// void类型 了解知道它还可以赋值给变量let arg1: voidarg1 = undefined// 此函数没有返回值 , 如果你不指定函数的返回值 , ts会根据当前函数的结果来推断出它的返回值// 在工作中 , 一般函数非必要的情况下 , 一般不指定返回值类型 , 让它自动推断出来// 没有返回值的几种情况:function print(): void {console.log(123)}function print(): void {}function print(): void {return}function print(): void {return undefined}// null类型// 如果要把一个变量声明为null类型let arg2: nullarg2 = null// undefined类型let arg3: undefinedarg3 = undefined