映射类型

一个类型需要基于另外一个类型,但是你又不想拷贝一份,这个时候可以考虑使用映射类型

映射类型建立在索引签名的语法上

1
2
3
type OptionsFlags<Type> = {
[Property in keyof Type]: boolean;
};
阅读更多

条件类型

用来帮助我们描述输入类型和输出类型之间的关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
interface Animal {
live(): void;
}

interface Dog extends Animal {
woof(): void;
}

type Example1 = Dog extends Animal ? number : string;
// type Example1 = number

type Example2 = RegExp extends Animal ? number : string;
// type Example2 = string

一般多搭配泛型使用

阅读更多

typeof 类型操作符

js自带的 typeof 可以在表达式上下文中使用,而ts的 typeof 可以在类型上下文中使用。用于获取一个变量或者属性的类型。

限制

只有对标识符(比如变量名)或者他们的属性使用 typeof 才是合法的

Typescript 泛型

在比如 C# 和 Java 语言中,用来创建可复用组件的工具,我们称之为泛型(generics)。利用泛型,可以创建支持多类型的组件,从而减少不必要的工作。

阅读更多