1. 什么是TS?
TS是强类型的JS超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。
TS并不直接在浏览器上运行,需要编译器编译成JS来运行。
2. TS的主要特点
- 跨平台:可以安装在任何OS上
- ES6特性
- 是面向对象的语言,提供标准OOP功能
- 使用静态类型并帮助在编译时就进行类型检查
- 允许可选的静态类型
- 可以操作DOM来增删客户端网页元素
3. any、never、unknown、null & undefined、void有什么区别?
any:动态的变量类型(失去类型检查的作用)
never:永不存在的值的类型。例如:never类型是那些总是会抛出异常 或 根本不会有返回值的函数表达式
unknown:任何类型的值都能赋给unknown类型,但unknown类型的值只能赋给unknown本身 和 any类型
null&undefined:默认下它们是所有类型的子类型
void:没有任何类型。例如:一个函数没有返回值,就可以把返回值定义为null
4. any和unknown的区别
unknown更严格,在对unknown类型的值执行大多数操作之前,必须进行某种形式的检查。
而对any执行操作之前,不必做任何检查。
在编程阶段还不清除类型的变量,比如来自用户输入 或 第三方代码库,我们又不希望类型检查器对这些值进行检查而直接通过编译阶段的检查,这时就可以用any。
5. 如何将unknown指定为一个具体的类型
- 使用