https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#more-recursive-type-aliases
再帰的な型定義ができるようになった。
以下のJson型はTypeScript3.6だとエラーになるが、TypeScript3.7ではエラーにならない。
```ts
type Json =
| string
| number
| boolean
| null
| { [property: string]: Json }
| Json[];
```