summaryrefslogtreecommitdiff
path: root/node/src
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-05-29 21:36:40 +0200
committerAylur <[email protected]>2024-05-29 21:36:40 +0200
commit776fc8093272ad29c20dfbcf8b7dfedfbc9bb2aa (patch)
tree2afb073fa8f13180b6fdd8d77c95e668c6431507 /node/src
parente5868a2514d8f2c28a9294d336c8ccd50e34be43 (diff)
improve ts types
Diffstat (limited to 'node/src')
-rw-r--r--node/src/astalify.ts6
-rw-r--r--node/src/widgets.ts6
2 files changed, 7 insertions, 5 deletions
diff --git a/node/src/astalify.ts b/node/src/astalify.ts
index 3bd00eb..bae6cc7 100644
--- a/node/src/astalify.ts
+++ b/node/src/astalify.ts
@@ -170,10 +170,12 @@ type BindableProps<T> = {
export type ConstructProps<
Self extends { new(...args: any[]): any },
Props = unknown,
- Signals = unknown
+ Signals extends Record<string, Array<unknown>> = Record<string, []>
> = {
[Key in `on${string}`]: (self: Widget<Self>) => unknown
-} & Partial<Signals> & BindableProps<Props & {
+} & Partial<{
+ [sig in keyof Signals]: (self: Widget<Self>, ...args: Signals[sig]) => unknown
+}> & BindableProps<Props & {
className?: string
css?: string
cursor?: string
diff --git a/node/src/widgets.ts b/node/src/widgets.ts
index 300cfab..2ce256a 100644
--- a/node/src/widgets.ts
+++ b/node/src/widgets.ts
@@ -1,10 +1,10 @@
/* eslint-disable max-len */
import { Astal, Gtk } from "./imports.js"
-import astalify, { type ConstructProps, type Widget } from "./astalify.js"
+import astalify, { type ConstructProps } from "./astalify.js"
import type GtkT from "@girs/node-gtk-3.0/node-gtk-3.0"
import type AstalT from "@girs/node-astal-0.1/node-astal-0.1"
-export { astalify }
+export { astalify, ConstructProps }
// Label
export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label)
@@ -17,7 +17,7 @@ export type IconProps = ConstructProps<typeof Astal.Icon, AstalT.Icon.Constructo
// Button
export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button)
export type ButtonProps = ConstructProps<typeof Astal.Button, AstalT.Button.ConstructorProperties, {
- onClicked: (self: Widget<typeof Astal.Button>) => void
+ onClicked: []
}>
// Window