[1.19]タイプスクリプト-ユーティリティ(Partial)
6847 ワード
Partial
Partial
Partialは、特定のタイプのサブセットを満たすタイプを定義することができる.
必要な情報だけを見ているPickとは異なり、Partialは商品情報(putなどのキャラクター)を更新する際に使用されるものと見なすことができます.
//기존 Product 인터페이스
interface Product {
id : number;
name : string;
price : number;
brand : string;
stock : number;
}
interface UpdateProduct {
id? : number;
name? : string;
price? : number;
brand? : string;
stock? : number;
}
Partialを使わなくても?繰り返し処理した結果,選択的に適用できる.しかし、Partialを使用すると、既存の製品インタフェースを再利用することができ、コードの重複を回避し、表現をより簡潔にすることができます.
type UpdateProduct = Partial<Product>
function updateProductItem(productItem:Partial<Product>){
}
部品の運動原理
VisualStudioが提供するタイプのスクリプトPartialの形式から見ると、
(コマンドまたはaltを押しながらPartialをクリックして確認)
UserProfileという名前のインタフェースと、変更するUserProfile Updateのインタフェース
2つを例に,partialの動作原理を上記のように解析した.
interface UserProfile {
username : string,
email : string,
profilePhotoUrl : string
}
interface UserProfileUpdate {
username? : string,
email? : string,
profilePhotoUrl? : string
}
type UserProfileUpdate = {
username? : UserProfile['username'],
email? : UserProfile['email'],
profilePhotoUrl? : UserProfile['profilePhotoUrl']
}
これをmappedtypeと呼びます.
△次のブログ記録では、より詳細に議論します.
type UserProfileUpdate = {
[ p in 'username' | 'email' | 'profilePhotoUrl']? : UserProfile[p]
}
以上の条件はkeyofによりさらに短縮できる.現在、完全な協力タイプではなく、協力タイプを減らす方法です.
type UserProfileKeys = keyof UserProfile
4.上記で使用したkeyofを代入すると、タイプスクリプトで説明したpartialの形式とますます似ていることがわかります.type UserProfileUpdate = {
[p in keyof UserProfile]? : UserProfile[p]
}
type Subset<T> = {
[ p in keyof T]? : T[p]
}
Reference
この問題について([1.19]タイプスクリプト-ユーティリティ(Partial)), 我々は、より多くの情報をここで見つけました https://velog.io/@22soook00/10.19-타입스크립트-Partialテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol