class
Creates a new class which can inherit from a superclass and use access specifiers.
INFO
This API design is based on Class++
Signature
luau
function class(name: string): (super: Class?) -> (data: ClassDefinition) -> ClassTypes
luau
type ClassDefinition = {
Public: { [string]: any }?,
Private: { [string]: any }?,
constructor: (self: Object, ...any) -> ()?,
destructor: (self: Object) -> ()?,
}
type Class = {
new: (...any) -> Object,
}
type Object = {
Destroy: (self: Object) -> (),
}Summary
Methods
| Method | Signature | Description |
|---|---|---|
getClass | (name: string) -> Class? | Retrieves a class by name. |
Example
Defining a Class
lua
local class = require("@batteries/class")
local Animal = class "Animal" {
Public = {
name = "Unknown",
Speak = function(self) print("...") end
}
}Custom Constructors
lua
local Person = class "Person" {
constructor = function(self, name)
self.name = name
end,
Public = {
name = ""
}
}
local p = Person.new("John")