TypeScriptで条件に基づいて型関数を定義する出力方法
P粉764836448
P粉764836448 2023-08-14 18:18:08
0
1
540
<p>関数の出力タイプを定義しようとしていますが、<code> に基づいて <code>string</code> タイプと <code>number</code> タイプの間に出力タイプを置きたいと考えています。 ;toNumberIfNeeded</code> フラグ <code>toNumberIfNeeded</code> が true の場合、この関数は数値型を返し、それ以外の場合は文字列型を返すと仮定して、条件を設定します。どうすればいいですか? </p> <pre class="brush:php;toolbar:false;">インターフェイス オプション { 大文字?: ブール値; filterSpecialChars?: ブール値; toNumberIfNeeded?: ブール値; } import const textTransformer = (テキスト: 文字列, オプション?: オプション) => { const { uppercase, filterSpecialChars, toNumberIfNeeded} = オプション || {}; //私の処理ロジックコード return toNumberIfNeeded ? parseInt(text) : text; }</pre> <p>想定される例: </p> <pre class="brush:php;toolbar:false;">textTransformer('hello'); // 文字列型を返します textTransformer('123', { toNumberIfNeeded: true }); // 数値型を返します</pre>
P粉764836448
P粉764836448

全員に返信(1)
P粉878542459

textTransformer() メソッドをリファクタリングして汎用パラメータを受け入れ、条件付き型を使用して toNumberIfNeededtrue false かを確認できます。 。 TypeScript では戻り値の型を自動的に絞り込むことはできないと思います。型アサーションを使用する必要があります。使用しない場合、戻り値の型は string |number として推論されます。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート