errors and warnings / classes / E3008
E3008 error
Class extends a non-class value, or a class only import type brings
- area
- classes (x3xxx)
- fails the build
- yes
A class extends something that isn't a class: an interface, a type alias,
an enum, or a value such as a table. extends needs a class value to inherit
from at run time. To take an interface's shape, write implements instead
(class Dog implements Pet). A class that import type brings is only a
type, with nothing to extend at run time: import it as a value
(import Animal from "./animal").
Example
interface Pet name: stringendclass Dog extends Pet name: string = "Rex"endprint(Dog)interface Pet name: stringendclass Dog implements Pet name: string = "Rex"endprint(Dog)import type Animal from "./animal"class Dog extends Animalendprint(Dog)export class Animalendimport Animal from "./animal"class Dog extends Animalendprint(Dog)export class AnimalendThe compiler reports it like this:
error[E3008]: class `Dog` extends `Pet`, an interface, not a class ┌─ src/main.wowlua:4:19 │ 4 │ class Dog extends Pet │ ^^^ not a class │ = help: a class extends one class; it implements interfaces (`implements I`)
Offline
$ wowlua explain E3008 E3008 (error): Class extends a non-class value, or a class only import type brings