TypeError

TypeError

TypeError 객체는 일반적으로(그러나 배타적으로는 아님) 값이 기대한 타입이 아닐 때 연산을 수행할 수 없음을 나타내는 오류입니다. Error의 하위 클래스입니다.

출처: TypeError - JavaScript | MDN

본문

TypeError 객체는 연산을 수행할 수 없을 때의 오류를 나타내며, 보통 값이 기대한 타입이 아닐 때 발생합니다. TypeError는 다음 경우에 던져질 수 있습니다.

  • 함수에 전달된 피연산자나 인자가 해당 연산자나 함수가 기대하는 타입과 호환되지 않을 때
  • 변경할 수 없는 값을 수정하려 할 때
  • 값을 부적절한 방식으로 사용하려 할 때

TypeError는 직렬화 가능한 객체이므로 structuredClone()으로 복제하거나 postMessage()로 Worker 사이에서 복사할 수 있습니다. TypeErrorError의 하위 클래스입니다.

생성자

  • TypeError() — 새 TypeError 객체를 만듭니다.

인스턴스 속성

부모 Error의 인스턴스 속성도 상속합니다. TypeError.prototype에 정의되어 모든 인스턴스가 공유하는 속성: constructor, name(오류 타입의 이름, 초기 값은 "TypeError").

인스턴스 메서드

부모 Error의 인스턴스 메서드를 상속합니다.

예제

TypeError 잡기 — 아래 코드는 null.f() 호출이 TypeError를 던지는 것을 보여줍니다.

try {
  null.f();
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "null has no properties"
  console.log(e.name); // "TypeError"
  console.log(e.stack); // Stack of the error
}

TypeError 만들기new TypeError("Hello")로 직접 TypeError를 만들어 던질 수 있습니다.

try {
  throw new TypeError("Hello");
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "TypeError"
  console.log(e.stack); // Stack of the error
}

더 알아보기

  • Error — 모든 오류 타입의 기본 클래스
  • RangeError, ReferenceError, SyntaxError, URIError, EvalError — 기타 내장 오류 타입