TypeScript:我都传了 type 了,能不能给我自动推导出 data 类型啊?
本文可理解为是上文的进阶篇。在编程领域经常会用到事件通讯,这是一段喜闻乐见的代码:
本文进阶篇:用 TS 实现一个类型完备的事件通讯器居然有两种方式
我们先假设存在这么一个用于描述特定业务错误的类,就叫它 SomeError 吧,它拥有:type 和 data 两个属性。
于是当你抛出该异常的时候,你是这么写的:
本文会不定期更新,我遇到的觉得值得分享的 TypeScript 问题都会写在这里
如果你有一些问都不知道咋问的 TypeScript 问题,来这里翻翻或许能找到答案!
2019.09.19 新增
1 | // https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-373782604 |
使用上面的 XOR 范型,我们可以很容易地实现如下需求:
TypeScript 写久了,越来越觉得定义各种类型,接口啊其实都是在写编辑器自动提示的配置而已。而且现在 ts 的各种高级类型越来越多,整个类型系统甚至可以看作是一套函数式工具库。用它不难,用好它其实挺难的,其中的差别我觉得就像前端从面向 dom 的编程和转变为面向数据驱动编程那样,你得首先有类型思维,因为它一定程度上还会反过来影响你的 api 设计和数据结构。