chuigda / Project-705

中国式家长 - 山寨版
7 stars 1 forks source link

错误使用 `instanceof` 引起的一堆 bug #9

Closed chuigda closed 2 years ago

chuigda commented 2 years ago

目前我们大规模使用 instanceof 来判断类型: 图片

但是,根据 这里提供的情报,TypeScript的设计允许把 Object literal 赋值给 TypeScript 的 class,而 instanceof 却是一个纯 JavaScript 的操作,但 TypeScript 偏偏还就认这个 instanceof 的结果。这个地方会炸出很大的问题。什么嘛,类型系统原来这么拉,TypeScript就这啊?

目前的计划是把这些个容易出问题的 class 换成 interface,然后砍掉这些 instanceof。后续可能会换掉很多 class,总之现有心理准备。

chuigda commented 2 years ago

@flaribbit @Shimogawa @SchrodingerZhu 你们谁来

chuigda commented 2 years ago

我决定把这张图封为典中典,每天黑一遍 TypeScript 图片 图片

Shimogawa commented 2 years ago

需要把 fn instanceof Function 改成 typeof fn === 'function' 吗?

chuigda commented 2 years ago

不用