0%

typescript2.8下React组件模式学习笔记

ts 2.8下React组件模式,结合typesscript 和react.这个看了好几遍,感觉挺经典,之前ts不熟,做下笔记.

知识点一 泛型的默认值
1
2
3
4
5
6
7
8
9
10
11

type ToggleableComponentProps<P extends object = {'length':number }> = {
show: string
toggle: string
} & P
const he = { name: 'jing' }
const aaa: ToggleableComponentProps = {
show: 'ff',
toggle: 'length',
length: 12,
}

这块后面的object=object 是什么意思?
P extends object 连在一起读,P 必须是继承自 object 的泛型。后面的等于号,例如 interface Example< T> ,在使用时如果编译器没办法根据上下文推测 T,就必须手动指定,例如 class MyClass implement Example<string> ,等于号在这里的作用和ES6 的默认值是一样的用法,例如 T = number 如果外界没有指定泛型,编译器又无法根据上下文推测出结果时,就会采用这个默认类型 {‘length’:12 }

知识点二 高阶组件包裹的话,static属性会消失