Interface

GObject-2.0GObjectSignalMethods

Typed signal methods for subclasses with custom or implemented-interface signals. Include the parent's SignalSignatures in Signals, then use each member with a declare field to refine the inherited method without replacing it at runtime. The constraint checks each signal without requiring a string index signature.

declare connect: GObject.SignalMethods<this, MySignals>["connect"]
declare connect_after: GObject.SignalMethods<this, MySignals>["connect_after"]
declare emit: GObject.SignalMethods<this, MySignals>["emit"]
interface SignalMethods<
    Emitter,
    Signals extends Record<keyof Signals, (...args: never[]) => unknown>,
> {
    connect<K extends string | number | symbol>(
        signal: K,
        callback: SignalCallback<Emitter, Signals[K]>,
    ): number;
    connect_after<K extends string | number | symbol>(
        signal: K,
        callback: SignalCallback<Emitter, Signals[K]>,
    ): number;
    emit<K extends string | number | symbol>(
        signal: K,
        ...args: GjsParameters<Signals[K]>,
    ): void;
}

Type Parameters

  • Emitter
  • Signals extends Record<keyof Signals, (...args: never[]) => unknown>
Index