前言
假期在家中无意间刷到了一篇 TS 技巧的文章,自己尝试了一下,觉得确实挺不错的,因此这里做一些记录。
活用提示
在使用 ts 的 interface
做定义声明时,一般写注释时都习惯性的使用单行注释 // ...
,虽然在看对应的 interface
时我们能知道是什么内容,但是在使用时往往只有个光秃秃的声明,后期维护时会感觉特别鸡肋:
但是如果这样写注释的话,在注释的呈现上会更利于阅读:
对返回参数、组件传参声明 等会经常去查阅的 ts 声明部分,可使用多行注释的写法,让使用体验更友好。
interface & type
TypeScript 中有两种定义接口类型的方法,分别是: interface(接口)
、type alias(类型别名)
,它们之间是能够自身继承、相互继承的:
1 | // interface 继承 interface |
这两者使用上特别相似,但也稍微有些不一样的地方
1. 写法不同
1 | // interface(偏向于:类、实例) |
目前项目中使用面向对象的写法会多一些,因此 类、实例 的出现比例会打一些,对于单独 .ts 文件内声明的函数可用 type 做声明会更方便一些
2. 其它不同
其它部分就直接粘贴看到的文章了,就不赘述了
typeof
这一点先前确实没关注过,不过对于有默认值的类型,确实会节省不少时间:
1 | const defaultProps = { |
keyof
这个单独来看用途可能不是很大,但是封装通用函数时,没有这个可能问题很大:
按照以前的写法,所获得的值会丢失类型,这 ts 就有些尴尬:
使用 keyof 方法改写后,我们来看看效果:
这样我们便能够从方法中推断出对应对象的类型了,确实方便了很多。
参考文章
- TypeScript: Interfaces vs Types
- [TypeScript 中提升幸福感的 10 个高级技巧](