一次类型体操 & TypeScript 中的特殊类型

1 · Liu · March 13, 2024, 9:40 a.m.
Summary
接上篇文章,我们在实现了 APlayer 的 Tree-Shaking 之后,遇到了一个新的问题:我们成功为播放器的某些功能拆分出了对应的插件,通过 APlayer.use(plugin) 的方式进行加载。但是有的插件会为 APlayer 注入新的方法,我们希望在加载插件后能够正确的提示出这些方法;并且在不加载插件的时候,不会提示出这些方法。即,use 操作需要返回一个新的 APlayer 类型,这个类型包含了插件注入的方法。 本文先介绍一下这个功能的实现,然后再讨论一下 TypeScript 中的 unknown, never, void 和 any 等特殊类型。 参考: (推荐阅读)简单科普底类型(Bottom Type)、单元类型(Unit Type)以及顶类型(Top Type):https://zhuanlan.zhihu.com/p/677605002 (官方)TypeScript: Type Compatibility:https://www.typescriptlang.org/docs/handbook/type-compatibility.html#any-unk...