typescript - `import()` typanteckningar är förbjudna
Jag använder XState på backend och enligt XStates dokumentation lade jag till typannotering i min tillståndsmaskins konfiguration:
export const machine = createMachine(
{
tsTypes: {} as import("./testMachine.server.typegen").Typegen0,
...,
}
Men typomvandlingen kastar detta fel:
`import()` type annotations are forbidden.eslint@typescript-eslint/consistent-type-imports
interface Typegen0
Jag tittade på dynamiska importeringar, men det verkar inte lösa problemet:
const dynamicImport = async() => await import("./testMachine.server.typegen")
Detta är från min eslint.
Svar #1
Det verkar som att det bara är ett lintfel. Din eslint-konfiguration förväntar sig ett visst sätt att importera typer på. Jag skulle anta att typinferensen och din kod fortfarande fungerar.
Du kan inaktivera lintningsfelet genom att lägga en ignorera-kommentar direkt ovanför raden med felet. Jag är inte säker på om jag fick kommentaren 100 % rätt, men något i den riktningen borde inaktivera felet.
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
// @ts-ignore
Annars kan du också använda import-syntaxen från detta svar eller justera din eslint-konfiguration därefter.
Förresten, jag antar att await aldrig behövs för att importera typer.
Svar #2
Att använda import() för typning är som standard förbjudet i regeln consistent-type-imports i eslint, men du kan tillåta det genom att sätta disallowTypeAnnotations till false i din .eslintrc.json regler-sektion:
{
"rules": {
"@typescript-eslint/consistent-type-imports": ["error", {
"disallowTypeAnnotations": false
}],
...
