typescript - TypeORM kaster feilen "Type instantiation is excessively deep and possibly infinite.ts(2589)" ved typing av Repository


Etter oppdatering til VSCode august 2019 (versjon 1.38) og Typescript 3.6 får jeg mange Type instantiation is excessively deep and possibly infinite.ts(2589) ved initialisering av TypeORM-repositorier.

import { Connection, Repository, Entity, BaseEntity,  createConnection } from 'typeorm';

@Entity()
class MyEntity extends BaseEntity {
    public id: number;
}

class Test {
    async test() {
        const connection: Connection = await createConnection();
        const myRepo: Repository<MyEntity> = connection.getRepository(MyEntity); // only here cast the error above
    }
}

Hvordan kan jeg ignorere dem eller fikse dem?

  • VSCode v1.38.0 (brukeroppsett)
  • Node.js v10.11.0
  • Typescript v3.4.5
  • TypeORM v0.2.18

Jeg la også merke til at feilen forsvinner hvis typingen fjernes : Repository<MyEntity>

Det er også "Excessive stack depth comparing types 'FindConditions<?>' and 'FindConditions<?>'-feilen på samme linje.

Svar #1

Oppdatering (23. september 2019):

Dette problemet ser ut til å ha blitt fikset i Typescript versjon 3.6.3.

Kilde: https://github.com/typeorm/typeorm/issues/3194#issuecomment-529911310

Svar #2

Mens bruk av en eldre versjon av TypeScript fungerer, kan du også legge til skipLibCheck: true-oppføring i din tsconfig.json-fil som angitt her

{
  "compilerOptions": {
    ...
    "skipLibCheck": true,
    ...
  }
}

Relaterte artikler