変数値が未定義のときに設定しようとしていますが、バニラのjavascriptのアプローチを使用しようとするとエラーが発生します。typescriptで未定義の変数を設定する方法は?
ブロックスコープ変数 'x'は宣言の前に使用されます。
未定義変数を設定するためにtypescriptを使用する場合の最良の方法は何ですか?それはブロックスコープ変数であるため、
let x = (typeof x === 'undefined') ? def_val : x;
変数値が未定義のときに設定しようとしていますが、バニラのjavascriptのアプローチを使用しようとするとエラーが発生します。typescriptで未定義の変数を設定する方法は?
ブロックスコープ変数 'x'は宣言の前に使用されます。
未定義変数を設定するためにtypescriptを使用する場合の最良の方法は何ですか?それはブロックスコープ変数であるため、
let x = (typeof x === 'undefined') ? def_val : x;
活字体は、x
が確実に定義されていないことを伝えることができますし、ブロック全体を見ることができます。
あなたがコンパイラよりもよく知っている場合は、あなたが行分離することができます:
const def_val = 'default';
let x: string;
x = (typeof x === 'undefined') ? def_val : x;
をしかし、あなたはおそらくあなたのケースで未定義することができる方法のブロックは、変数をスコープを検討する必要があります(おそらく、あなたのコードは非常にではありませんあなたの質問の例のように)。
一般的な使用例は、より多くのようになります:
const def_val = 'default';
function work(y: string) {
let x = (typeof y === 'undefined') ? def_val : y;
}
ます。また、それは可能性が低い値は、多くの場合、不定となります作るために、より厳格なコンパイラオプションを追加することができます。
有用である可能性が速記のfalsey-合体もあります:
const def_val = 'default';
function work(y: string) {
let x = y || def_val;
}
これはデフォルトでundefined
、null
、または''
に置き換えられます。
'let'はブロックスコープの変数なので、' x'はその時点で_definitely_ undefinedです。 'x'が親ブロックにも定義される場合、' var'を使う必要があります。 –