目次
1。partial Partial :すべての属性をオプションにします
2。 Required :すべての属性を必要とします
3。Readonly Readonly :読み取り専用タイプを作成します
4。Pick Pick :指定された属性を抽出します
5。Omit Omit :指定された属性を除外します
6。 Record :キー値マッピングタイプを定義します
7。 ExcludeExtract :タイプフィルタリング
8。NONNULLABLE NonNullable :nullを削除して定義されていません
9。 ParametersおよびReturnType :関数タイプ分析
10。 Awaited :約束の深い結果を分析します
ホームページ ウェブフロントエンド jsチュートリアル マスターするタイプスクリプトユーティリティタイプ

マスターするタイプスクリプトユーティリティタイプ

Jul 30, 2025 am 03:42 AM

Partial すべての属性をオプションにし、更新操作に適しています。 2。必要な完全な構成を確保するために必要なすべての属性を作成します。 3. readonly 偶発的な変更を防ぐための読み取り専用タイプを作成します。 4。抽出物オブジェクトのトリミングの指定された属性を抽出します。 5。DTO処理に一般的に使用される指定された属性を除外します。 6。レコードルーティングまたはステートマッピングに適したキー値マッピングを定義します。 7.除外は、割り当て可能なタイプを除外し、抽出して、ジョイントタイプフィルタリングのために挿入可能なタイプを抽出します。 8。型の安全性を向上させるために、null nullを削除して定義されていない。 9。パラメーターおよびreturnType 関数パラメーターと戻り値タイプを個別に抽出して、高次関数処理を容易にします。 10。待望のは、非同期の派生に適した、ネストされた約束の最終的な値を解析します。これらの実用的なタイプは、タイプスクリプト開発における効率とタイプの安全性を改善するためのコアツールです。マスタリング後、コードの保守性と堅牢性を大幅に向上させることができます。

マスターするタイプスクリプトユーティリティタイプ

タイプスクリプトのユーティリティタイプは、開発において不可欠なツールであり、タイプをより効率的に操作し、コードの保守性とタイプの安全性を向上させるのに役立ちます。これらの組み込みのツールタイプをマスターすると、複雑なタイプの変換を扱うときに安心できます。すべてのTypeScript開発者が熟練する必要があるコアの実用的なタイプは次のとおりです。

マスターするタイプスクリプトユーティリティタイプ

1。partial Partial<t></t> :すべての属性をオプションにします

Partial<t></t>オブジェクトのすべてのプロパティをオプションにする必要がある場合に役立ちます。操作を更新したり、オブジェクトの構成に使用したりするためによく使用されます。

インターフェイスユーザー{
  ID:番号;
  名前:文字列;
  電子メール:文字列;
}

function updateuser(id:number、change:partial <user>){
  //着信フィールドのみを更新}

このようにして、 changes nameemail 、または空のみを含めることができます。

マスターするタイプスクリプトユーティリティタイプ

注: Partialは浅く、ネストされたオブジェクトのプロパティは自動的にオプションになりません。


2。 Required<T> :すべての属性を必要とします

Partialとは反対に、 Required<T>はすべてのオプションのプロパティを必須にします。構成オブジェクトのすべてのフィールドが入力されるようにするシナリオに適しています。

マスターするタイプスクリプトユーティリティタイプ
インターフェイスconfig {
  apiurl?:string;
  タイムアウト?:番号;
  retries?:number;
}

const defaultconfig:必須<config> = {
  apiurl: &#39;https://api.example.com&#39;、
  タイムアウト:5000、
  再試行:3、
};

元のインターフェイスがオプションであっても、必須であっても、すべてのフィールドを提供する必要Required


3。Readonly Readonly<T> :読み取り専用タイプを作成します

オブジェクトが予期せず変更されないようにします。修正したくない関数の定数、状態管理、またはパラメーターに適しています。

インターフェイスポイント{
  X:番号;
  Y:番号;
}

const origin:readonly <point> = {x:0、y:0};
// Origin.x = 10; //❌エラー:値を割り当てることができません

大きなオブジェクトまたは状態の木にReadonly使用すると、副作用を効果的に回避できます。


4。Pick Pick<T, K> :指定された属性を抽出します

タイプから関心のあるいくつかのフィールドを選択し、新しいタイプを作成します。 API応答のトリミングまたはフォームフィールド選択に最適です。

インターフェイスユーザー{
  ID:番号;
  名前:文字列;
  電子メール:文字列;
  パスワード:文字列;
}

type publicuser = pick <user、 &#39;id&#39; | 「名前」>;
// {id:number;名前:文字列}

タイプセーフを維持しながら、敏感なフィールド( passwordなど)を公開しないでください。


5。Omit Omit<T, K> :指定された属性を除外します

Pickに反して、 Omit特定のフィールドを削除するのに役立ちます。 DTO(データ転送オブジェクト)を処理する際に非常に実用的です。

タイプSAFEUSER = OMIT <user、 &#39;password&#39;>;
// {id:number;名前:文字列;メール:文字列}

特に多くのフィールドがある場合、それはすべての非敏感なフィールドをマニュアルPickよりも簡潔です。


6。 Record<K, T> :キー値マッピングタイプを定義します

キーが1つのタイプであり、値が別のものであるオブジェクトが必要な場合、 Record非常に適しています。

型ルート=録音<string、()=> string>;

constルート:ルート= {
  家:()=> &#39;/&#39;、
  プロフィール:()=> &#39;/プロフィール&#39;、
  設定:()=> &#39;/settings&#39;、
};

また、構成マッピング、状態列挙などにも一般的に使用されます。

より厳しい例:

タイプステータス= &#39;ロード&#39; | 「成功」| &#39;エラー&#39;;
constメッセージ:録音<ステータス、string> = {
  読み込み:「ロード...」、
  成功:「操作は成功した」、
  エラー:「エラーがありました」、
};

書き込みが少ないか、もう1つの状態を書くと、TypeScriptはエラーを報告します。


7。 Exclude<T, U>Extract<T, U> :タイプフィルタリング

  • Exclude<T, U> :tからuに割り当てることができるタイプを除外します
  • Extract<T, U> :uに割り当てることができるtのタイプを抽出します
タイプステータス= &#39;アイドル&#39; | 「ロード」| 「成功」| &#39;エラー&#39;;
loadingStatesを入力=抽出<ステータス、 &#39;loading&#39; | 「アイドル」>; //「アイドル」| 「ロード」
タイプerroronly = exclude <status、 &#39;idle&#39; | 「ロード」| 「成功」>; // &#39;エラー&#39;

条件付きおよび組合タイプの操作において非常に強力です。


8。NONNULLABLE NonNullable<T> :nullを削除して定義されていません

null値を含む可能性のあるジェネリックを扱う場合、型がnullまたは未定義のnullまたはundefined扱う場合に役立つことを確認してください。

タイプmaybestring = string | null |未定義;
タイプempulationString = nonullable <MayBestring>; // 弦

タイプガードとともに使用されると、型推論の精度を向上させることができます。


9。 Parameters<T>およびReturnType<T> :関数タイプ分析

関数タイプからパラメーターと戻り値タイプを抽出することは、高次関数またはテストツールに特に役立ちます。

 function createUser(name:string、age:number):{id:number;名前:文字列;年齢:番号} {
  return {id:date.now()、name、age};
}

type args = parameters <typeof createUser>; // [文字列、番号]
タイプresult = returnType <typeof createUser>; // {id:number;名前:文字列;年齢:番号}

機能、ログ、キャッシュなどの一般的なロジックをカプセル化するために使用できます。


10。 Awaited<T> :約束の深い結果を分析します

async/awaitまたはPromise.thenのリターンタイプを処理するのに適しています。その後、ネストされた約束を正しく解析できます。

タイプdeeppromise = Promise <Promise <Promise <String >>>;
タイプ値= waited <deeppromise>; // 弦

async function fetchuser(){
  return {id:1、name: &#39;alice&#39;};
}

タイプユーザー= waited <returnType <typeof fetchuser >>; // {id:number;名前:文字列}

特に複雑な非同期シナリオでは、 .then()タイプの推論よりも正確です。


基本的にそれだけです。これらの実用的なタイプは「スキルを示す」ものではなく、毎日タイプスクリプトを書くときに効率とセキュリティを本当に改善できるツールです。たとえば、プロジェクトで使用しようとすることをお勧めします。

 updateuserdto = obit <partial <user>、 &#39;id&#39;>をobit obit obit>;
タイプApiresponse <t> = {data:t;ステータス:「成功」} | {エラー:文字列;ステータス:「エラー」};
datafromResponse <t> =抽出<待望<t>、{status: &#39;success&#39;}> [&#39;data&#39;];

複雑ではありませんが、無視するのは簡単です。それらをマスターすると、あなたのタイプスクリプトは本当に紹介されています。

以上がマスターするタイプスクリプトユーティリティタイプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設定することにより実装されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS Jul 02, 2025 am 01:28 AM

ESモジュールとCommonJSの主な違いは、ロード方法と使用シナリオです。 1.CommonJSは同期的にロードされ、node.jsサーバー側環境に適しています。 2.ESモジュールは、ブラウザなどのネットワーク環境に適した非同期にロードされています。 3。Syntax、ESモジュールはインポート/エクスポートを使用し、トップレベルのスコープに配置する必要がありますが、CommonJSは実行時に動的に呼ばれるrequire/Module.Exportsを使用します。 4.CommonJSは、Expressなどのnode.jsおよびLibrariesの古いバージョンで広く使用されていますが、ESモジュールは最新のフロントエンドフレームワークとnode.jsv14に適しています。 5.混合することはできますが、簡単に問題を引き起こす可能性があります。

Garbage CollectionはJavaScriptでどのように機能しますか? Garbage CollectionはJavaScriptでどのように機能しますか? Jul 04, 2025 am 12:42 AM

JavaScriptのごみ収集メカニズムは、タグクリアリングアルゴリズムを介してメモリを自動的に管理して、メモリ漏れのリスクを減らします。エンジンはルートオブジェクトからアクティブオブジェクトを横断およびマークし、マークされていないオブジェクトはゴミとして扱われ、クリアされます。たとえば、オブジェクトが参照されなくなった場合(変数をnullに設定するなど)、次のリサイクルでリリースされます。メモリリークの一般的な原因には以下が含まれます。 closurures閉鎖の外部変数への参照。 globalグローバル変数は引き続き大量のデータを保持しています。 V8エンジンは、世代のリサイクル、増分マーキング、並列/同時リサイクルなどの戦略を通じてリサイクル効率を最適化し、メインスレッドのブロック時間を短縮します。開発中、不必要なグローバル参照を避け、パフォーマンスと安定性を改善するためにオブジェクトの関連付けを迅速に装飾する必要があります。

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない内蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡潔な構文と強力な機能を備えており、非同期/待ち声、自動JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡素化することをお勧めします。 3.Node-Fetchは、約束と単純な構文に基づいて、ブラウザフェッチに似たスタイルを提供します

var vs let vs const:クイックJSラウンドアップ説明 var vs let vs const:クイックJSラウンドアップ説明 Jul 02, 2025 am 01:18 AM

var、let、constの違いは、範囲、昇進、繰り返し宣言です。 1.VARは機能範囲であり、変動的なプロモーションを備えており、繰り返しの宣言が可能になります。 2.一時的なデッドゾーンを備えたブロックレベルの範囲であり、繰り返される宣言は許可されていません。 3.Constはブロックレベルの範囲でもあり、すぐに割り当てる必要があり、再割り当てすることはできませんが、参照型の内部値を変更できます。最初にconstを使用し、変数を変更するときにletを使用し、varの使用を避けます。

JavaScriptデータ型:プリミティブ対参照 JavaScriptデータ型:プリミティブ対参照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと参照タイプに分割されます。プリミティブタイプには、文字列、数字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り当てるときにコピーされるため、互いに影響を与えません。オブジェクト、配列、関数などの参照タイプはメモリアドレスを保存し、同じオブジェクトを指す変数は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

DOMツリーを通過する方法(例:ParentNode、Children、NextElementibling)? DOMツリーを通過する方法(例:ParentNode、Children、NextElementibling)? Jul 02, 2025 am 12:39 AM

DOMトラバーサルは、Webページ要素操作の基礎です。一般的な方法は次のとおりです。1。親ノードを取得するためにparentNodeを使用し、上向きに見つけるために連鎖させることができます。 2。子供は、子供の要素のコレクションを返し、インデックスを介して最初の子または末端の要素にアクセスします。 3. nextelementsiblingは次の兄弟要素を取得し、以前のエレメントを組み合わせて同性ナビゲーションを実現します。次のブラザーノードを強調表示するボタンをクリックするなど、構造、インタラクティブな効果などの動的に変更するなどの実用的なアプリケーション。これらの方法を習得した後、複雑な操作を組み合わせて達成できます。

See all articles