JavaScriptでこれを行うにはどうすればよいですか？
JavaScriptでは、タイプアサーションを使用して、値が特定のタイプを持っていることをタイプシステムに伝えることもできます。JavaScriptのタイプアサーションは、「タイプキャスト」として知られています。

AsキーワードまたはAngle Bracket構文を使用して、特定のタイプに値をキャストできます。たとえば、文字列であることがわかっている変数xがある場合、次の構文のいずれかを使用して文字列タイプにキャストできます。

「JS」
const x = "hello";
const y = x as string;// 'as'キーワードを使用します
const z = <string> x;//アングルブラケットを使用します
`` `

ただし、タイプキャストは実際には値のタイプを変更しないことに注意することが重要です。これは、タイプシステムに値のタイプを知っていることを伝える方法にすぎません。値が実際に指定されたタイプでない場合、ランタイムエラーまたは予期しない動作が得られる場合があります。

型キャストに加えて、タイプガードを使用して、ランタイムチェックに基づいて値のタイプを絞り込むこともできます。たとえば、文字列または数字のいずれかである可変Xがある場合、次のようなタイプガードを使用して、そのタイプを文字列のみに絞り込むことができます。

「JS」
関数ISSTRING（VALUE：ANY）：VALUE IS STRING {
  return typeof value === "string";
}

X：文字列|としますnumber = "hello";
if（isstring（x））{
  // xは「文字列」と入力するように絞り込まれました
  console.log（x.touppercase（））;
}
`` `

この例では、IssTring関数は、値パラメーターが文字列であるかどうかをチェックするタイプガードです。値は文字列構文であり、関数が特定の型であるかどうかを示すブール値を返すことをタイプシステムに伝えるタイプの述語です。if（isstring（x））ステートメントを使用すると、型はxがstringに狭くなるようになったことを知っているため、touppercase（）を安全に呼び出すことができます。