TypeScriptにおけるisとasの使い方の基本と実践例

JavaScript

TypeScriptでは型安全を保ちながら柔軟なプログラミングが可能です。その中で、型のチェックや型の強制指定に使われる代表的なキーワードが isas です。本記事では、これらの違いと使い方を具体例を交えて解説します。

isの基本と使い方

is は型ガードに使われるキーワードです。関数の戻り値として使用することで、ある値が特定の型であるかを判定できます。型チェックを行い、条件分岐内で安全に型を扱うことが可能です。

例:

function isString(value: unknown): value is string {
  return typeof value === ‘string’;
}
const data: unknown = ‘hello’;
if (isString(data)) {
  console.log(data.toUpperCase()); // dataがstring型として扱える
}

asの基本と使い方

as は型アサーションで使われます。コンパイラに対して「この値はこの型である」と明示的に指定し、型チェックを通過させる役割です。ただし、型安全は保証されないため注意が必要です。

例:

const input = document.getElementById(‘myInput’) as HTMLInputElement;
console.log(input.value);

isとasの違い

is は型を判定するための条件付きの型ガードであり、実行時に安全性を確認します。一方、as は型を強制的に指定するだけで、実行時の型保証はありません。

型安全を重視する場合は is を使用し、既知の型に変換する場合やライブラリとの互換性で明示的に型を指定したい場合は as を使用するのが適切です。

実践例:関数内での組み合わせ

unknown型の値を受け取り、文字列なら加工し、それ以外は無視する場合:

function processValue(value: unknown) {
  if (isString(value)) {
    console.log(value.toUpperCase());
  } else {
    console.log(‘非文字列です’);
  }
}

必要に応じて as を使って既存のオブジェクトを型変換し、他の関数やライブラリに渡すことも可能です。

まとめ

TypeScriptにおける isas は、型安全と柔軟性を両立するために重要です。is は型ガードとして実行時チェックに使い、as は型アサーションとして既知の型に変換する際に使用します。状況に応じて適切に使い分けることで、安全かつ効率的なコードを書けます。

コメント

タイトルとURLをコピーしました