TypeError

TypeError 객체는 일반적으로 값이 기대하던 자료형이 아니라서 연산을 할 수 없을 때 발생하는 오류를 나타냅니다.

다음과 같은 경우 TypeError가 발생할 수 있습니다.

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

TypeError직렬화 가능한 객체이기 때문에, structuredClone()로 복제하거나 postMessage()를 사용하여 Workers 간에 복사할 수 있습니다.

생성자

TypeError()

새로운 TypeError 객체를 생성합니다.

인스턴스 속성

TypeError.prototype.message

오류 메시지. Error로부터 상속되었습니다.

TypeError.prototype.name

오류 이름. Error로부터 상속되었습니다.

TypeError.prototype.cause

오류 ���인. Error로부터 상속되었습니다.

TypeError.prototype.fileName 비표준

오류가 발생한 파일 경로. Error로부터 상속되었습니다.

TypeError.prototype.lineNumber 비표준

오류가 발생한 곳의 줄 위치. Error로부터 상속되었습니다.

TypeError.prototype.columnNumber 비표준

오류가 발생한 곳의 열 위치. Error로부터 상속되었습니다.

TypeError.prototype.stack

스택 추적. Error로부터 상속되었습니다.

예제

TypeError 오류를 잡아내기

js
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.fileName); // "Scratchpad/1"
  console.log(e.lineNumber); // 2
  console.log(e.columnNumber); // 2
  console.log(e.stack); // "@Scratchpad/2:2:3\n"
}

TypeError 오류를 생성하기

js
try {
  throw new TypeError("Hello", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "TypeError"
  console.log(e.fileName); // "someFile.js"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // "@Scratchpad/2:2:9\n"
}

명세

Specification
ECMAScript Language Specification
# sec-native-error-types-used-in-this-standard-typeerror

브라우저 호환성

BCD tables only load in the browser

같이 보기