Typescriptとはjavascript実行環境で動く型付きの言語です。
interface、class, typeなどの宣言で型を定義できます。
一部の値を除外して型を定義する方法を把握したので、備忘録を兼ねて記事を残します。
typescriptでこのような一部の値以外は同じ型を定義する場合いくつかの記述方法があります。
interface Article { title: string body: string authorId: number } interface ArticleWithoutAuthorId { title: string body: string }
上記の書き方だと同じ内容を複数のinterfaceで記述しているため、内容が変わった時に片方を変更し忘れて不具合を発生させてしまうかもしれません。
冗長な記述をなくす書き方のひとつは&を使う方法です。
interface ArticleWithoutAuthorId { title: string body: string } type Article = ArticleWithoutAuthorId & { authorId: number }
上記のように、保持する値が少ない方をtypeの定義で利用して&で繋ぐことで期待する型になります。
他の書き方としてはOmitを使う方法です。
interface Article { title: string body: string authorId: number } type ArticleWithoutAuthorId = Omit<Article, "authorId">
上記のように Omit<除外対象の型, 除外したい値の名前> と記述することで、期待するように型を定義できました。
Utirily Typesとして便利機能が紹介されているので「こんな書き方が知りたい」と思った時は覗いてみると良いかもしれません。
参考
Exclude property from type - Stack Overflow
TypeScript: Handbook - Utility Types
0 件のコメント :
コメントを投稿