首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >TypeScript-never和object类型、类型断言概述

TypeScript-never和object类型、类型断言概述

原创
作者头像
杨不易呀
发布2023-09-28 18:44:46
发布2023-09-28 18:44:46
4230
举报
文章被收录于专栏:杨不易呀杨不易呀

前言

TypeScript 中的 "never" 类型表示一个永远不会发生正常结束的函数返回值类型,通常在异常处理或无限循环中使用。这有助于标识代码中的潜在问题和错误流程。

"object" 类型用于表示非原始类型(如字符串、数字、布尔等)的对象。它允许你定义具有不同属性和方法的对象,但无法访问对象的具体属性,因此谨慎使用,以避免类型错误。

"never" 用于处理异常情况,而 "object" 用于通用的对象表示。正确使用它们有助于提高代码的可读性和类型安全性。

Never 类型

表示的是那些永不存在的值的类型 一般用于抛出异常或根本不可能有返回值的函数

  • 抛出异常
代码语言:typescript
复制
function demo(): never {
    throw new Error("报错了");
}

demo();
  • 不可能有返回值的函数
代码语言:typescript
复制
function demo(): never {
    while (true) {
    }
}

demo();

Object 类型

表示一个对象

代码语言:typescript
复制
let obj: object;
// 👇会报错
// obj = 123;
obj = {name: "BNTang", age: 18};
console.log(obj);

类型断言概述

TS 中的类型断言和其它编程语言的 类型转换 很像,可以将一种类型强制转换成另外一种类型 类型断言就是告诉编译器, 你不要帮我们检查了, 相信我,我知道自己在干什么

例如:我们拿到了一个 any 类型的变量,但是我们明确的知道这个变量中保存的是 字符串 类型,此时我们就可以通过类型断言告诉编译器, 这个变量是一个字符串类型, 此时我们就可以通过类型断言将 any 类型转换成 string 类型, 使用字符串类型中相关的方法了

方式一

代码语言:typescript
复制
let str: any = "yby6";
let len = (<string>str).length;
console.log(len);

方式二

在企业开发中推荐使用 as 来进行类型转换(类型断言) 因为第一种方式有兼容性问题,在使用到了 JSX 的时候兼容性不是很好

代码语言:typescript
复制
let str: any = "yby6";
let len = (str as string).length;
console.log(len);
end02
end02
输入图片说明
输入图片说明

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Never 类型
  • Object 类型
  • 类型断言概述
  • 方式一
  • 方式二
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档