typescript学习笔记2

  1. 交叉类型(Intersection Types)
    交叉类型是将多个类型合并为一个类型。这通过 & 符号实现。

typescript
type Combined = Type1 & Type2 & Type3;
例如,一个对象可能同时拥有多个接口所定义的属性:

typescript
interface ErrorHandling {
success: boolean;
error?: string;
}

interface ArtData {
title: string;
artist: string;
}

type ArtWithData = ArtData & ErrorHandling;

let art: ArtWithData = {
title: “Dance”,
artist: “Vincent”,
success: true,
};
13. 联合类型(Union Types)
联合类型表示一个值可以是几种类型之一。使用 | 分隔每个类型。

typescript
let id: number | string;
id = 123;
id = “123”;
14. 字面量类型
字面量类型允许你指定变量只能是特定的值。

typescript
let color: “red” | “green” | “blue” = “blue”;
15. 类型别名(Type Aliases)
类型别名有时和接口很相似,但是可以作用于原始值、联合类型、交叉类型以及元组等任何类型。

typescript
type Name = string;
type NameOrAge = string | number;
type PartialPerson = {
name?: string;
age?: number;
};
16. 索引签名(Index Signatures)
索引签名可以定义对象上索引的类型。

typescript
interface StringArray {
[index: number]: string;
}

let myArray: StringArray;
myArray = [“Bob”, “Fred”];

let firstName: string = myArray[0];
17. 映射类型(Mapped Types)
映射类型是基于旧类型创建新类型的一种方式,它基于旧类型中的每个属性并应用某种转换以产生新的类型。

typescript
type Keys = ‘a’ | ‘b’ | ‘c’;
type OptionsFlags = { [K in Keys]: boolean };
// type OptionsFlags = {
// a: boolean;
// b: boolean;
// c: boolean;
// }
18. 条件类型(Conditional Types)
条件类型允许你根据条件定义类型。

typescript
type TypeName = T extends string ? ‘string’ :
T extends number ? ‘number’ :
T extends boolean ? ‘boolean’ :
‘object’;

type T1 = TypeName; // type T1 = “string”
type T2 = TypeName; // type T2 = “number”
19. 字符串字面量类型
字符串字面量类型允许你指定字符串必须的固定值。

typescript
type Easing = “ease-in” | “ease-out” | “ease-in-out”;
20. 装饰器(Decorators)
装饰器是一种特殊类型的声明,它可以被附加到类声明、方法、属性或参数上。装饰器使用 @expression 的形式,expression 必须是一个函数,它会在运行时被调用,被装饰的声明信息作为参数传入。

这只是一个TypeScript特性的简短列表,实际上TypeScript的功能非常丰富和强大。要深入学习TypeScript,建议阅读官方文档、教程和相关的书籍,以及参与实际的项目开发。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值