29
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypescriptのPickキーワード

Last updated at Posted at 2018-11-07

#今日、暇だから。小さいことを共有したいんです。
(外国人だから、間違った言葉があれば申し訳ございません。投稿の下にコメントください)
Typescript 2.1バージョンから「Pick」キーワードを提供されます
##Pickとは
以下のサンプルを見てください。

型を定義します:

export interface User {
  id: string;
  username: string;
  password: int;
  address: string;
  phoneNumber: string;
}

以上のソースコードはユーザーの型ですが。
Create機能を使うとき

createUser(user: User) {
  let user: User = {
    id: user.id,
    username: user.username,
    password: user.password,
    address: user.address,
    phoneNumber: user.phoneNumber,
  }
  insertUser(user); // この関数は他のファイルで定義されます。でも。機能はデータベースにユーザーを挿入します
}

以上のように正常に動作できます。
ですが、私の経験はデータベースに挿入するとき、id項目は自動作成されます。
それで以下のようにやります:

createUser(user: User) {
  let user: any = {
    username: user.username,
    password: user.password,
    address: user.address,
    phoneNumber: user.phoneNumber,
  }
  insertUser(user); // この関数は他のファイルで定義されます。でも。機能はデータベースにユーザーを挿入します
}

User型の代わりにanyです。
例えば、anyタイプを使用しない場合。どうすればいいでしょうか。
この場合はPickを使用します。

type CreateUserType = Pick<User, 'username' | 'password' | 'address' | 'phoneNumber'>;

CreateUserTypeを使用するとき、他の人はソースコードがわかりやすいです。簡単なメンテナンスできると思います。
###まとめ
Pickというキーワードは便利だね。機会があれば是非、やってみてください
最後まで読みいただきありがとうございます。
間違っているところがあれば直接教えてください。幸いです

29
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?