typescript - TypeORM 在 Repository 類型上拋出「類型實例化過深且可能無限.ts(2589)」錯誤
在更新到 VSCode 2019 年 8 月版(版本 1.38)和 TypeScript 3.6 之後,我在 TypeORM 儲存庫初始化時遇到了很多 Type instantiation is excessively deep and possibly infinite.ts(2589) 錯誤。
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
}
}
我該如何忽略或修復它們?
- VSCode v1.38.0(使用者安裝版)
- Node.js v10.11.0
- TypeScript v3.4.5
- TypeORM v0.2.18
我也注意到,如果移除類型 : Repository<MyEntity>,錯誤就會消失
在同一行也有 "比較類型 ''FindConditions<?>'' 和 ''FindConditions<?>'' 時堆疊深度過深" 的錯誤。
答案#1
更新(2019年9月23日):
這個問題似乎已在 Typescript 版本 3.6.3 中得到修復。
來源:https://github.com/typeorm/typeorm/issues/3194#issuecomment-529911310
答案#2
雖然使用舊版本的 TypeScript 也能完成工作,但你也可以在你的 tsconfig.json 文件中添加 skipLibCheck: true 項,如此處所述
{
"compilerOptions": {
...
"skipLibCheck": true,
...
}
}
