👋

typescriptの循環参照で悩んでいた

2020/12/18に公開

問題

// hoge.ts
import { Fufa } from './Fuga';

export class Hoge {
  public fuga: Fuga;
} 

// fuga.ts
import { Hoge } from './hoge';

export class Fuga{
  someFunction (hoge: Hoge) {
     return hoge.something;
  }
}

みたいなコードがあって、eslintから循環参照エラーがでていた。

結論

import typeというtypescript 3.8から利用可能なものを利用することによって解決した。
ここらへん皆さんどう解決してるんだろう...。

// hoge.ts
import { Fufa } from './Fuga';

export class Hoge {
  public fuga: Fuga;
} 

// fuga.ts
import type { Hoge } from './hoge';

export class Fuga{
  someFunction (hoge: Hoge) {
     return hoge.something;
  }
}

Discussion