在更新VSCode 2019年8月(1.38版)和打字本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
}
}
我怎样才能忽视或修复它们呢?
我还注意到,如果删除类型,: Repository<MyEntity>
,则错误将消失。
在同一行中也存在"Excessive stack depth comparing types 'FindConditions<?>' and 'FindConditions<?>'
错误。
发布于 2019-09-11 21:03:16
这可以通过使用以前版本的类型记录来解决。
首先,确保工作区"npm“上的类型记录版本低于3.6
。例如:package.json
"dependencies": {
...
"typescript": "^3.0.3"
}
如果您的工作区有3.6.x
或更高版本,请安装键入npm install typescript@3.4.3
的早期版本。
然后,带有一个.ts
文件的打开,一个类型记录版本选择器将出现在状态栏上。( ^3.6.x
版本可能正在显示)
然后选择“使用工作区版本”而不是与代码版本“”
确保工作区版本也低于3.6.x
ex在这里的版本,3.4.3
在我的工作区中。否则,强制安装前面提到的先前版本。
既然选择了^3.4.x
版本,您就不应该在VS代码或tsc
命令上出现这种错误。
注意:由于工作区类型记录版本与TypeORM兼容,运行像npm run build
这样的脚本不应该抛出任何错误,因为它将使用类型记录工作区二进制文件。错误将只发生在VS代码或终端上的直接tsc
命令上。
发布于 2019-09-23 02:41:47
更新(2019年9月23日):
这一问题似乎已在打字本3.6.3版中得到解决。
来源:https://github.com/typeorm/typeorm/issues/3194#issuecomment-529911310
发布于 2019-09-11 21:09:48
在使用较早版本的类型记录时,您还可以按照声明的skipLibCheck: true
文件在tsconfig.json
文件中添加这里条目。
{
"compilerOptions": {
...
"skipLibCheck": true,
...
}
}
https://stackoverflow.com/questions/57805787
复制相似问题