' import() '类型注释是被禁止的



我在后端使用XState,并且根据XState文档,我在状态机的配置中添加了类型注释:

export const machine = createMachine(
{
tsTypes: {} as import("./testMachine.server.typegen").Typegen0,
...,
}

但是,类型强制转换抛出以下错误:

`import()` type annotations are forbidden.eslint@typescript-eslint/consistent-type-imports
interface Typegen0

我研究了动态导入,但这似乎并不能解决这个问题:

const dynamicImport = async() => await import("./testMachine.server.typegen")

这是来自我的eslint。

这似乎只是一个检测错误。你的eslint配置需要一种导入类型的方式。我假设类型推断和你的代码仍然有效。

您可以通过在错误行上方直接放置忽略注释来禁用检查错误。我不确定我的评论是否100%正确,但在那个方向上应该禁用错误。

// eslint-disable-next-line @typescript-eslint/consistent-type-imports
// @ts-ignore

否则,你也可以使用这个答案的import语法,或者相应地调整你的eslint配置。

顺便说一句,我认为导入类型不需要await

默认情况下,在consistent-type-imports eslint规则中禁止使用import()进行键入,但您可以通过在.eslintrc.json规则部分将disallowTypeAnnotations设置为false来允许它:

{
"rules": {
"@typescript-eslint/consistent-type-imports": ["error", {
"disallowTypeAnnotations": false
}],
...

它说你必须导入类型

import type { Typegen0 } from "./testMachine.server.typegen"
export const machine = createMachine(
{
tsTypes: {} as Typegen0,
...,
}

您可以在文档中阅读更多内容:https://typescript-eslint.io/rules/consistent-type-imports/#prefer

相关内容

  • 没有找到相关文章

最新更新