reactjs Vitest importActual:Jest获取类型,但Vitest给出“. is of type unknown”

rlcwz9us  于 2023-11-18  发布在  React
关注(0)|答案(1)|浏览(151)

我正在从jest迁移到vitest。在这个过程中,我正在转换这些:

// Jest
const myLib = jest.requireActual("mylib.js")

字符串
对这些:

// Vitest
const myLib = await vi.importActual("myLib.js")


很好,除了Jest,我没有类型错误,但是Vitest,我得到:
第一个月
我可以访问myLib的成员,并且可以看到它们的类型是正确的,但是对myLib的任何访问都会导致错误:

// Thing[] is inferred. Error is on **myLib**.things
const things: Thing[] = myLib.things


在调查(在WebStorm中简单地将鼠标悬停在myLib上)每个场景中的类型时,我看到Jest为myLib的类型提供了any,而Vitest提供了unknown
我的tslog.json中有noImplicitAny: true,所以我认为我应该在any上也得到一个错误。
但无论如何,为什么会有区别,如果myLib本身是unknown,那么TypeScript如何判断myLib.thingsThing[]类型,我应该怎么做?

p5cysglq

p5cysglq1#

我想处理这个问题的一个简单方法是简单地执行await vi.importActual("myLib.js") as Record<{a: b}>,其中a是您在测试中访问的某个成员,b是该成员的类型。
然而,我仍然不明白如何从unknown推断出Thing[]

相关问题