はじめに TypeScript では、 Mapped Type や Conditional Typesを利用することで、既存の interface から様々な型を定義することができます。 この記事では、以下の Person という interface を基にして、新たな型定義を行う例を紹介していきます。 interface Person { id: number; name: string; age: number; birthOfDate: { year: number; month: number; day: number }; } なお、以下のリンク先にあるように、TypeScriptは便利なMapped Typeをビルトインで提供しているので、先に目を通しておくと良いでしょう。 TypeScript-Handbook - Utility Types また、後述するようなMapped
![TypeScriptの既存の型から新たな型を定義する (Mapped Type) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7f7017927f4e44d164f7aa134cc20069804ea8cb/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9VHlwZVNjcmlwdCVFMyU4MSVBRSVFNiU5NyVBMiVFNSVBRCU5OCVFMyU4MSVBRSVFNSU5RSU4QiVFMyU4MSU4QiVFMyU4MiU4OSVFNiU5NiVCMCVFMyU4MSU5RiVFMyU4MSVBQSVFNSU5RSU4QiVFMyU4MiU5MiVFNSVBRSU5QSVFNyVCRSVBOSVFMyU4MSU5OSVFMyU4MiU4QiUyMCUyOE1hcHBlZCUyMFR5cGUlMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTdjZjY2NDZkMzYyNjkwN2RkZDgwZGJkZWE2OWZjYTZl%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBUc3V5b3NoaTg0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03MGQxMDJmMDRjOTBhYmE2NWE1Y2UyZWM0NjNlNWVmMQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Daffd7dfb5e46ba42f3992ad680d7800b)