[タイプスクリプト]処理Any(AnyとUnknown)

3453 ワード

既存のプログラミング言語のタイプシステムは、完全静的言語と完全動的言語に明確に分けることができる.しかし、タイプスクリプトのタイプシステムはオプション(optional)とグラデーション(gradule)であるため、静的および動的特性を有する.したがって、コードの一部にのみタイプシステムを適用したり、状況に応じてタイプスクリプトを省略したりすることができます.
タイプスクリプトのタイプシステムは、タイプシステムを選択的にコードの一部にのみ適用できるため、JavaScriptコードを漸進的にタイプスクリプト(移行)に変換して使用することができます.anyタイプは、移行時にコードの一部でタイプチェックを無効にします.ただし、anyはタイプスクリプトで非常に強力なため、anyを正しく使用してこそ、タイプスクリプトコードをより効率的に記述することができます.
任意のタイプは、できるだけ小さな範囲でのみ使用されます.
まず関数に関するanyの使い方を理解してみましょう.
function processBar(b: Bar) {
  /* ... */
}

function fn() {
  const x = expressionReturningFoo();
  processBar(x);
  // ! x : "Foo" 형식의 인수는 'Bar' 형식의 매개변수에 할당될 수 없습니다.
}
コード内のxという変数に対してFooタイプとBarタイプを同時に割り当てることができる場合、エラーを解消するには2つの方法があります.
function fn1() {
  const x: any = expressionReturningFoo(); // 변수에 any 타입을 직접 할당하는 건 좋지 않습니다.
  processBar(x);
}

function fn2() {
  const x = expressionReturningFoo(); // 다운캐스팅을 이용하는 이 방법이 훨씬 좋습니다.
  processBar(x as any);
}
作成中