Щоб остаточно покласти це спокою. У Вавилоні 6 це явно , що розробники не підтримують розширення від вбудованого. Хоча цей трюк НЕ допоможе з речами , як Map
, Set
і т.д. , це робить роботу Error
. Це важливо, оскільки одна з основних ідей мови, яка може спричинити виняток, - це дозволити користувацькі помилки. Це вдвічі важливіше, оскільки обіцянки стають більш корисними, оскільки вони призначені для відхилення помилки .
Сумна правда полягає в тому, що вам потрібно все-таки виконати це по-старому в ES2015.
Приклад у Вавілонській REPL
Спеціальна модель помилок
class MyError {
constructor(message) {
this.name = 'MyError';
this.message = message;
this.stack = new Error().stack; // Optional
}
}
MyError.prototype = Object.create(Error.prototype);
З іншого боку, є плагін для Babel 6, який дозволяє це зробити.
https://www.npmjs.com/package/babel-plugin-transform-builtin-extend
Оновлення: (станом на 2016-09-29) Після деяких тестувань виявляється, що babel.io не відповідає належним чином усім твердженням (що походить від користувацької розширеної помилки). Але в Ember.JS розширення помилки працює як очікується: https://ember-twiddle.com/d88555a6f408174df0a4c8e0fd6b27ce