From 87837754f6e7cbfc86e6f542d8bae158de563902 Mon Sep 17 00:00:00 2001 From: Pabloader Date: Tue, 28 Apr 2026 12:08:08 +0000 Subject: [PATCH] Proper typechecking for decorators --- src/common/rpg/components/entity.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/common/rpg/components/entity.ts b/src/common/rpg/components/entity.ts index 78e102c..31ae24c 100644 --- a/src/common/rpg/components/entity.ts +++ b/src/common/rpg/components/entity.ts @@ -14,8 +14,12 @@ export abstract class RPGComponentBase implements RPGComponent { const vars: RPGVariables = {}; for (const [methodKey, exportName] of keys) { const k = String(methodKey); - const v = (this as unknown as Record)[k]; - if (v != null) { + const v = (this as Record)[k]; + if ( + typeof v === 'number' + || typeof v === 'string' + || typeof v === 'boolean' + ) { vars[exportName] = v; } } @@ -29,7 +33,10 @@ export abstract class RPGComponentBase implements RPGComponent { const actions: RPGActions = {}; for (const key of keys) { const k = String(key); - actions[k] = (arg?: unknown) => (this as unknown as Record unknown>)[k](arg); + const fn = (this as Record)[k]; + if (typeof fn === 'function') { + actions[k] = fn.bind(this); + } } return actions; }