本稿ではtypeormのコンパイルで発生する「Excessive stack depth comparing types 'MongoRepository' and 'Repository'.」というエラーの解消法について伝える。
なお、この問題は発見されてから日が浅いため、より良い解消法が見つかる可能性がある。
僕の環境での発生状況
- typeorm 0.2.18
- typescript 3.6.2 (3.5.3では再現せず)
解消法1: typescript@3.5.3にダウングレードする
僕の環境では、typescript@3.5.3ではこの問題が発生しておらず、また、GitHubのissueでも3.5.3にダウングレードしたら解決したという報告が寄せられていることから効果があると考えられる。
解消法2: "skipLibCheck: true"をセットする
暫定措置として、tsconfig.jsonのcompilerOptions
に"skipLibCheck": true
をセットするとエラーを抑制できる。これはすべての*.d.tsファイルの型チェックをスキップするというもの。
tsconfig.json
{
"compilerOptions": {
// skipLibCheck is a temporary solution for https://github.com/typeorm/typeorm/issues/3194
"skipLibCheck": true
}
}