- React.isValidElement(element): 判断是否不是React组件,可以用在增强代码的健壮性,比如使用HOC时,确定传入的是不是一个React Element,防止渲染的时候出错。
- Omit<T, K extends keyof T>:从T对象中剔除K属性,K属性继续于T(即保证剔除的属性必须在T中)并创建一个新的对象类型
- Exclude<T, U> – 从T中剔除可以赋值给U的类型。
- Extract<T, U> – 提取T中可以赋值给U的类型。
- NonNullable – 从T中剔除null和undefined
- ReturnType – 获取函数返回值类型。
- InstanceType – 获取构造函数类型的实例类型。
- Omit<T, K extends keyof T> 等价于 Pick<T, Exclude<keyof T, K>>
- Record 后面的泛型就是对象键和值的类型。
interface PageInfo {
title: string;
}
type Page = "home" | "about" | "contact";
const nav: Record<Page, PageInfo> = {
about: { title: "about" },
contact: { title: "contact" },
home: { title: "home" },
};