Babel6 계에서 extends 한 클래스에 instanceof를 사용하는 방법
4575 단어 extends자바스크립트클래스babelinstanceof
확인한 버전
babel-core v6.26.0
babel-plugin-transform-builtin-extend v1.1.2
babel6 시스템으로 컴파일하면 instanceof가 올바르게 작동하지 않습니다.
class CustomError extends Error {};
console.log(new CustomError() instanceof Error); // true
console.log(new CustomError() instanceof CustomError); // false!!!
원인
영어가 좋지 않으므로 자세히 읽을 수는 없지만 6 계열의 버그처럼 보입니다.
htps : // 기주 b. 코 m / 바베 l / 바베 l / 이스에 s / 3083
회피 방법
1.prototype 덮어쓰기
class CustomError extends Error {};
CustomError.prototype = Error.prototype; // ここ!
console.log(new CustomError() instanceof Error); // true
console.log(new CustomError() instanceof CustomError); // true♪
※여러가지 시험해 보았습니다만, 왜 이것으로 고쳐지는지까지는 쫓지 않았습니다,,, 가르쳐 위대한 사람!
2. 플러그인 넣기
babel-plugin-transform-builtin-extend
.babelrc
{
"plugins": [
["babel-plugin-transform-builtin-extend", {
globals: ["Error", "Array"]
}]
]
}
요약
참고 링크
여담
babel의 버그이므로 Chrome에서 직접 실행하면 의도대로 작동하는지 확인할 수 있습니다.
Reference
이 문제에 관하여(Babel6 계에서 extends 한 클래스에 instanceof를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/putan/items/cde32e6f1430d5f76268텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)