After update to VSCode August 2019 (version 1.38) and Typescript 3.6 i'm getting a lot of Type instantiation is excessively deep and possibly infinite.ts(2589)
on TypeORM repository initialization.
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
}
}
How can I ignore or fix them?
I also noticed that the error is gone if the typing is removed : Repository<MyEntity>
There also is the "Excessive stack depth comparing types 'FindConditions<?>' and 'FindConditions<?>'
error on the same line.
This can be solved it by using a previous version of Typescript.
First be sure that the typescript version on your workspace "npm" is lower than 3.6
. For instance: package.json
:
"dependencies": {
...
"typescript": "^3.0.3"
}
If your workspace have 3.6.x
or greater, install a previous version typing npm install [email protected]
Then, with a .ts
file opened, a typescript version selector will appear on status bar. (version ^3.6.x
probably being displayed)
then choose "Use Workspace Version" instead of "VS Code's Version"
Be sure that workspace version is also lower than 3.6.x
ex here version 3.4.3
is on my workspace. Or else force install a previous version as previouly mentioned
Now that version ^3.4.x
is selected, you should not have this kind of error on VS Code nor tsc
commands.
Note: Since workspace Typescript version is compatible with TypeORM, running scripts like npm run build
should not throw any errors cause it will use Typescript workspace binaries. The errors will only occurs on VS Code or direct tsc
commands on terminal