From fbc72eb8cba80f4c74c97f513e07564dd031c6a1 Mon Sep 17 00:00:00 2001 From: interpreterK Date: Tue, 26 Dec 2023 00:30:57 -0500 Subject: [PATCH] shared types prototyping metatables --- src/shared/types/class.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/shared/types/class.lua diff --git a/src/shared/types/class.lua b/src/shared/types/class.lua new file mode 100644 index 0000000..43c4e66 --- /dev/null +++ b/src/shared/types/class.lua @@ -0,0 +1,11 @@ +-- type AccountImpl = { +-- __index: AccountImpl, +-- new: (name: string, balance: number) -> Account, +-- deposit: (self: Account, credit: number) -> (), +-- withdraw: (self: Account, debit: number) -> (), +-- } + +-- type Account = typeof(setmetatable({} :: { name: string, balance: number }, {} :: AccountImpl)) + +type hself = {__index: T} & U +export type constructor = typeof(setmetatable({} :: T & hself, {} :: U)) \ No newline at end of file