ascoders / weekly

前端精读周刊。帮你理解最前沿、实用的技术。
28.61k stars 3.24k forks source link

如何为 TS 类型写单测 #446

Closed ascoders closed 2 years ago

ascoders commented 2 years ago

本周分享一下自己的工作经验,如何对针对 TS 类型写单测。


如何为 TS 类型写单测

rudyxu1102 commented 1 year ago

可以参考vue3源码的类型测试 https://github.com/vuejs/core/blob/main/test-dts/index.d.ts

waitingsong commented 1 year ago
一种做法是直接访问类型提示,此时会出现错误下划线:

myLib.add
      ~~~ // Property 'add' does not exist on type MyLib

可以使用 // @ts-expect-error 这个(行前)注释来实现

  1. 屏蔽类型错误提示
  2. 如果后续这个属性(比如 .add)被开放了,那么就会出现类型异常(期望是有异常,但是因为这个属性被公开了不会有预期的异常,所以会提示异常)

如果采用 // @ts-ignore 这个注释,那么只能屏蔽异常,而不能在属性公开性变动后检测是否满足类型需求。