検索

ホームページ  >  に質問  >  本文

TypeScriptで条件に基づいて型関数を定義する出力方法

<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粉764836448P粉764836448498日前562

全員に返信(1)返信します

  • P粉878542459

    P粉8785424592023-08-15 13:04:14

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

    リーリー

    返事
    0
  • キャンセル返事