题目一:
any、unkonwn和never以及void的区别
any:当一个值被标记为any会绕过typescript的的类型检查,js迁移ts的临时解决方案。(!!避免代码中出现any
类型,这是因为any
跳过了所有的类型检查,而这会给我们带来一些潜在的安全问题。)
unknown:(我的理解是安全型的any)它表示一个未知的值,不能直接对unknown类型的值进行操作,也不能将它分配给除unkonwn和any之外的其他类型,除非你先进行类型检查或者断言。表示任何类型值,但想保持类型安全,可以使用unknown。(TypeScript
在3.0版本引入了unknown
类型,它可以理解为类型安全的(type-safe)any
。)
never:表示一个不存在的值,ts使用三目运算符作类型声明,表示类型不存在。
void:
其实可以理解为null和undefined的联合类型
,它表示空值。
题目二:
type和interface有什么区别
都可以用来定义接口,也可以实现继承,type通过&交叉类型实现的,interface通过extends实现的。
type类型别名不仅可以用来表示基本类型,还可以用来表示对象类型、联合类型、元组和交集。
与 type 不同,interface 仅限于描述对象类型。