type Article = {id: string, value: number} type ArticleDraft = {id: string | null, value: number} ORM などで一度保存するまでidが振られない、みたいな時によくある型ですね。 これは簡単な例ですが、フィールドが多くなると同じような型を2つ書くのが面倒くさいし、何よりバグを仕込みそうなので、今回はなんとかして Article 型から ArtcileDraft 型を最小限の手数で生成したい、と思います。 案1: Draft を先に定義して、 extends して絞り込む interface ArticleDraft {id: null | string, value: number} interface Article extends ArticleDraft { id: string }