TypeError: class constructors must be invoked with 'new'
En esta página
The JavaScript exception "class constructors must be invoked with 'new'" occurs when a class constructor is called without the {{jsxref("new")}} keyword. All class constructors must be called with new.
Message#
TypeError: Class constructor X cannot be invoked without 'new' (V8-based)
TypeError: Class constructors cannot be invoked without 'new' (V8-based)
TypeError: class constructors must be invoked with 'new' (Firefox)
TypeError: Cannot call a class constructor without |new| (Safari)
Error type#
{{jsxref("TypeError")}}
What went wrong?#
In JavaScript, calling a function without new and constructing a function with new are two distinct operations, and functions can behave differently depending on how they are called.
Traditionally, JavaScript functions have been used as both constructors and normal functions, and can detect how they were called using new.target. However, class constructors are always constructors and cannot be called as normal functions.
Examples#
Invalid cases#
```js example-bad class X {}
X(); // TypeError: class constructors must be invoked with 'new'
### Valid cases
```js example-good
class X {}
new X();
See also#
- Classes
- {{jsxref("new")}}