带你读《现代TypeScript高级教程》二、类型(2)

简介: 带你读《现代TypeScript高级教程》二、类型(2)

带你读《现代TypeScript高级教程》二、类型(1)https://developer.aliyun.com/article/1348570?groupCode=tech_library


8.Any


当你不确定一个变量应该是什么类型的时候,你可能需要用到 any 类型。any类型的变量允许你对它进行任何操作,它就像是TypeScript类型系统的一个逃生窗口:

 

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean


9.Unknown


unknown类型是TypeScript 3.0中引入的一种新类型,它是any类型对应的安全类型。unknown类型的变量只能被赋值给any类型和unknown类型本身:

 

let value: unknown;
value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK
value = [];               // OK
value = {};               // OK


10.Never


never类型表示的是那些永不存在的值的类型。例如,never类型是那些总是会抛出异常或者根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型:

 

function error(message: string): never {
    throw new Error(message);}


11.void


在TypeScript中,void类型用于表示没有返回值的函数的返回类型。在JavaScript中,当一个函数没有返回任何值时,它会隐式地返回undefinedvoid类型就是用来表达这种情况的:

 

function warnUser(): void {
    console.log("This is my warning message");}

 

在这个例子中,warnUser函数没有返回任何值,所以它的返回类型是void

 

需要注意的是,在TypeScript中,你可以声明一个void类型的变量,但是你只能为它赋予undefinednull(在非严格null检查模式下):

 

let unusable: void = undefined;

 

通常情况下,我们不会这样使用void类型,因为除了undefinednull之外,你不能将任何值赋给void类型的变量。


12.联合类型(Union Types)


TypeScript联合类型是一种将多种类型组合到一起的方式,表示一个值可以是多种类型之一。你可以使用管道符(|)来分隔每个类型。这可以让你在不确定一个值是什么类型的时候,为它选择多个可能的类型。

例如,假设我们有一个函数,这个函数的参数可以是number类型或者string类型:

function display(input: string | number) {
    console.log(input);}

 

在上面的函数中,我们声明了input参数可以是string类型或者number类型。你可以传递一个string类型或者number类型的值给display函数,而TypeScript编译器不会报错:

 

display(1); // OK
display("Hello"); // OK

 

你也可以将联合类型用于变量和属性。例如:

 

let variable: string | number;
variable = "Hello"; // OK
variable = 1; // OK

 

在上面的代码中,我们声明了variable可以是string类型或者number类型。然后我们可以安全地将一个字符串或者数字赋值给variable

 

联合类型在TypeScript中非常常用,因为它们可以帮助你编写更灵活的代码。


带你读《现代TypeScript高级教程》二、类型(3)https://developer.aliyun.com/article/1348568?groupCode=tech_library

相关文章
|
21天前
|
JavaScript 前端开发 Java
TypeScript 类型兼容性
TypeScript 类型兼容性
|
21天前
|
JavaScript 前端开发
typescript 混合类型
typescript 混合类型
|
5天前
|
JavaScript 前端开发 IDE
TypeScript中的声明文件(.d.ts):扩展类型系统
TypeScript的`.d.ts`声明文件为JS库提供类型信息,增强IDE支持,如自动完成和类型检查。通过声明合并,可在全局作用域定义类型。示例包括为`my-library`创建声明模块,导出函数和接口。声明文件通常存于`@types`或指定`typeRoots`。用于旧JS代码的类型注解,如`myGlobalObject`。学习更多,参阅TypeScript官方文档。分享你的TS声明文件经验!
|
17天前
|
JavaScript 前端开发 安全
TypeScript:静态类型的动态语言
【6月更文挑战第9天】TypeScript是JavaScript的静态类型超集,解决JS类型安全问题,提供更强的代码组织和维护。它引入静态类型、接口和类,增强类型安全,减少运行时错误。TS与JS无缝集成,兼容现有库和框架,拥有丰富的开发工具和活跃社区。广泛应用在各种规模项目中,尤其提升复杂前端应用的代码质量。学习TypeScript对提升开发效率和代码可靠性极具价值。
25 10
|
15天前
|
前端开发 JavaScript 安全
TypeScript作为一种静态类型的JavaScript超集,其强大的类型系统和面向对象编程特性为微前端架构的实现提供了有力的支持
【6月更文挑战第11天】微前端架构借助TypeScript提升开发效率和代码可靠性。 TypeScript提供类型安全,防止微前端间通信出错;智能提示和自动补全加速跨代码库开发;重构支持简化代码更新。通过定义公共接口确保一致性,用TypeScript编写微前端以保证质量。集成到构建流程确保顺利构建打包。在微前端场景中,TypeScript是强有力的语言选择。
29 2
|
21天前
|
JavaScript
TypeScript 泛型类型
TypeScript 泛型类型
|
1天前
|
JavaScript 安全
TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)
TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)
3 0
|
1天前
|
JavaScript
TypeScript类型申明
TypeScript类型申明
5 0
|
21天前
|
JavaScript 算法
TypeScript 类型推论
TypeScript 类型推论
|
21天前
|
JavaScript 前端开发 编译器
typescript 推断类型
typescript 推断类型