TypeScript全解:深入对象与函数(上)
深入对象
索引签名(Index Signature)
我们已经很熟悉了
1 | type Hash = { |
映射类型(Mapped Type)
多用于泛型
1 | type List { |
可选类型
对象的某个属性可用可不用
1 | interface Person { |
只读类型
表示只读,不能写
1 | interface Person { |
深入函数
对象的语法全都适用于函数,函数也可以用对象来声明
1 | type F = { |
声明方式
JS 函数的三种声明方式
1 | function f1(a) { |
那么相对应 TS 的
1 | function f1(a: number): number { |
可选参数
1 | function addEventListener(eventType: string, fn: unknown, useCapture?: boolean) { // TODO: 加上问号就好了 |
参数默认值
实际情况我们会更倾向于使用默认值
1 | // 和上面的代码等价 |
返回值也是函数
1 | type Add = (x: number) => (y: number) => number |