[解決済み] オプションのパラメータが提供されたかどうかを確認するにはどうすればよいですか?
2023-05-03 06:32:47
質問
オプションのパラメータを持つ関数があります。
function DoSomething(a, b?) {
/** Implementation */
}
関数本体の中でオプションのパラメータが提供されたかどうかを判断するにはどうしたらよいでしょうか。現在、私が思いつく最良の方法は
typeof b === 'undefined'
しかし、これではなんだかごちゃごちゃしていて、読むのに素直ではありません。TypeScriptはオプションのパラメータをサポートしているので、パラメータが提供されたかどうかを直感的に確認する方法も用意してほしいですね。
上の例でわかるように、オプショナルパラメータが明示的に
undefined
に設定されていても、全く供給されていなくても構いません。
編集
残念ながら、この質問は、特に流し読みされる場合、あるべきものとして明確ではありませんでした。それは、以下の方法について意図されていました。 きれいに オプションのパラメータが 完全に省略された というように、です。
DoSomething("some value");
エヴァンの解答は、彼の解答なので受け入れました(
b === undefined
)は私の質問のものよりもきれいです(
typeof b === 'undefined'
) よりもすっきりしており、かつ同じ動作をしています。
他の回答は間違いなく有用であり、どの回答が正しいかはユースケースによります。
どのように解決するのですか?
値が未定義かどうかを確認すればよいのです。
var fn = function(a) {
console.log(a === undefined);
};
fn(); // true
fn(undefined); // true
fn(null); // false
fn('foo'); // false
関連
-
[解決済み] コンポーネントテンプレートで要素を選択するには?
-
[解決済み] TypeScriptで配列に文字列が含まれているかどうかを確認するには?
-
[解決済み] オプションのパラメータを省略しながら、他のオプションのパラメータを渡すには?
-
[解決済み] tsconfig.jsonのtargetは何のためにあるのですか?
-
[解決済み] Promiseの型はどのようにアンラップするのですか?
-
[解決済み] TypeScriptをminifiedコードにコンパイルすることは可能ですか?
-
[解決済み] spec/testフォルダを使用したtsconfigのセットアップ
-
[解決済み] types/packageでインストールしたTypeScriptの型定義が正しくない場合に上書きする方法
-
[解決済み] vs-codeで複数のtsconfigファイルを使用するには?
-
[解決済み] Angular2でのenumに基づく選択
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] describe'という名前が見つかりません。テストランナー用の型定義をインストールする必要がありますか?
-
[解決済み] Angular 2でアプリ起動時にサービスを実行する方法
-
[解決済み] tsc が `TS2307: Cannot find module` for a local file をスローします。
-
[解決済み] Visual Studio コード自動インポート
-
[解決済み] Promiseの型はどのようにアンラップするのですか?
-
[解決済み] Typescript で Enum を制限付きキータイプとして使用する
-
[解決済み] エラー Typescript Feature 1.5。現在の言語レベルは1.4です。
-
[解決済み] TypeScript 2: 型付けされていない npm モジュールのためのカスタム型付け
-
[解決済み] TypeScriptの"=>"の意味とは?(ファットアロー)