javascript error
This commit is contained in:
parent
396056db87
commit
516ad7a530
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
title: "JavaScript error \"Super Expression must either be null or a function\""
|
||||||
|
date: 2022-04-18T04:05:40-04:00
|
||||||
|
draft: true
|
||||||
|
toc: false
|
||||||
|
images:
|
||||||
|
tags:
|
||||||
|
- dev
|
||||||
|
- javascript
|
||||||
|
- typescript
|
||||||
|
---
|
||||||
|
|
||||||
|
I just got this error when working on some TypeScript code.
|
||||||
|
|
||||||
|
```
|
||||||
|
Uncaught TypeError: Super Expression must either be null or a function
|
||||||
|
```
|
||||||
|
|
||||||
|
The line for the error pointed to the constructor of a class. What's happening?
|
||||||
|
Circular dependencies it turns out.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// in foo.ts
|
||||||
|
class Foo {
|
||||||
|
foo() {
|
||||||
|
new Bar().doSomething();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// in bar.ts
|
||||||
|
class Bar extends Foo {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
It's obvious when boiled down like this, but it's something you'll want to make
|
||||||
|
sure to avoid. I solved this issue by making `Bar` not extend `Foo`. It added
|
||||||
|
little to no duplicated code for me in this case, so just separating the classes
|
||||||
|
was easy enough.
|
Loading…
Reference in a new issue