JSX

一种嵌入式的类似XML的语法。 它可以被转换成合法的JavaScript。常见的有React,博客所用到的库为inferno也是jsx。

阅读更多

枚举类型

枚举可以清晰地表达意图或创建一组有区别的用例。TypeScript支持数字的和基于字符串的枚举

阅读更多

声明合并

可以在类型层面上描述JavaScript对象的模型

声明合并指指编译器将针对同一个名字的两个独立声明合并为单一声明。 合并后的声明同时拥有原先两个声明的特性。 任何数量的声明都可被合并;不局限于两个声明

阅读更多

映射类型

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

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

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 才是合法的