Usage

Declare a custom native slider view.

This type is used by view

tsx
// Declare a custom native slider view.
import { defineModule, view } from 'kuito';

type SliderProps = {
  value: number;
  min?: number;
  max?: number;
  onChange?: (value: number) => void;
};

export default defineModule('Slider', {
  view: view<SliderProps>({ events: ['change'] }),
  ios: { class: 'KuitoSliderModule' },
  android: { class: 'dev.kuito.runtime.modules.slider.KuitoSliderModule' },
});

Type declaration

ts
export type NativeViewMethods<M> = {
  [K in keyof M]: M[K] extends (...args: infer A) => Promise<infer R>
    ? [A] extends [(ModuleData | undefined)[]]
      ? [R] extends [ModuleData | void]
        ? M[K]
        : never
      : never
    : never;
};

Type

ts
{ [K in keyof M]: M[K] extends (...args: infer A) => Promise<infer R> ? [A] extends [ModuleData[]] ? [R] extends [void | ModuleData] ? M[K] : never : never : never; }
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.