refactor(types): use typed SvelteComponent interface for typing components

This commit is contained in:
Eric Liu 2020-11-25 15:29:55 -08:00
commit dab82d3479
156 changed files with 1379 additions and 1667 deletions

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface SelectProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["div"]> {
/**
@ -83,13 +84,8 @@ export interface SelectProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNam
ref?: null | HTMLSelectElement;
}
export default class Select {
$$prop_def: SelectProps;
$$slot_def: {
default: {};
};
$on(eventname: "blur", cb: (event: WindowEventMap["blur"]) => void): () => void;
$on(eventname: "change", cb: (event: CustomEvent<any>) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class Select extends SvelteComponent<
SelectProps,
{ blur: WindowEventMap["blur"]; change: CustomEvent<any> },
{ default: {} }
> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface SelectItemProps {
/**
@ -26,9 +27,4 @@ export interface SelectItemProps {
disabled?: boolean;
}
export default class SelectItem {
$$prop_def: SelectItemProps;
$$slot_def: {};
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class SelectItem extends SvelteComponent<SelectItemProps, {}, {}> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface SelectItemGroupProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["optgroup"]> {
/**
@ -14,11 +15,4 @@ export interface SelectItemGroupProps extends svelte.JSX.HTMLAttributes<HTMLElem
label?: string;
}
export default class SelectItemGroup {
$$prop_def: SelectItemGroupProps;
$$slot_def: {
default: {};
};
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class SelectItemGroup extends SvelteComponent<SelectItemGroupProps, {}, { default: {} }> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface SelectSkeletonProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["div"]> {
/**
@ -8,13 +9,13 @@ export interface SelectSkeletonProps extends svelte.JSX.HTMLAttributes<HTMLEleme
hideLabel?: boolean;
}
export default class SelectSkeleton {
$$prop_def: SelectSkeletonProps;
$$slot_def: {};
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
$on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
$on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class SelectSkeleton extends SvelteComponent<
SelectSkeletonProps,
{
click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"];
},
{}
> {}