前言
TypeScript 中的 "never" 类型表示一个永远不会发生正常结束的函数返回值类型,通常在异常处理或无限循环中使用。这有助于标识代码中的潜在问题和错误流程。
"object" 类型用于表示非原始类型(如字符串、数字、布尔等)的对象。它允许你定义具有不同属性和方法的对象,但无法访问对象的具体属性,因此谨慎使用,以避免类型错误。
"never" 用于处理异常情况,而 "object" 用于通用的对象表示。正确使用它们有助于提高代码的可读性和类型安全性。
Never 类型
表示的是那些永不存在的值的类型 一般用于抛出异常或根本不可能有返回值的函数
- 抛出异常
function demo(): never { throw new Error("报错了"); } demo();
- 不可能有返回值的函数
function demo(): never { while (true) { } } demo();
Object 类型
表示一个对象
let obj: object; // 👇会报错 // obj = 123; obj = {name: "BNTang", age: 18}; console.log(obj);
类型断言概述
TS
中的类型断言和其它编程语言的类型转换
很像,可以将一种类型强制转换成另外一种类型 类型断言就是告诉编译器, 你不要帮我们检查了, 相信我,我知道自己在干什么
例如:我们拿到了一个 any
类型的变量,但是我们明确的知道这个变量中保存的是 字符串
类型,此时我们就可以通过类型断言告诉编译器, 这个变量是一个字符串类型, 此时我们就可以通过类型断言将 any
类型转换成 string
类型, 使用字符串类型中相关的方法了
方式一
let str: any = "yby6"; let len = (<string>str).length; console.log(len);
方式二
在企业开发中推荐使用
as
来进行类型转换(类型断言) 因为第一种方式有兼容性问题,在使用到了JSX
的时候兼容性不是很好
let str: any = "yby6"; let len = (str as string).length; console.log(len);
最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗