fix(types): dispatched events without a detail value should be null (#1124)

Currently, dispatched events without `e.detail` have a type of `any`.

We can be more specific as a `CustomEvent` detail value is `null`.
This commit is contained in:
metonym 2022-02-21 09:42:42 -08:00 committed by GitHub
commit 714f47a635
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 97 additions and 93 deletions

View file

@ -1863,9 +1863,9 @@ export interface HeaderSearchResult {
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :---------------------------------------------------------------------------------------------- | | :--------- | :--------- | :---------------------------------------------------------------------------------------------- |
| active | dispatched | <code>any</code> | | active | dispatched | <code>null</code> |
| inactive | dispatched | <code>any</code> | | inactive | dispatched | <code>null</code> |
| clear | dispatched | <code>any</code> | | clear | dispatched | <code>null</code> |
| select | dispatched | <code>{ value: string; selectedResultIndex: number; selectedResult: HeaderSearchResult }</code> | | select | dispatched | <code>{ value: string; selectedResultIndex: number; selectedResult: HeaderSearchResult }</code> |
| change | forwarded | -- | | change | forwarded | -- |
| input | forwarded | -- | | input | forwarded | -- |
@ -1956,10 +1956,10 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :--------------- | | :--------- | :--------- | :---------------- |
| load | dispatched | <code>any</code> | | load | dispatched | <code>null</code> |
| error | dispatched | <code>any</code> | | error | dispatched | <code>null</code> |
## `InlineLoading` ## `InlineLoading`
@ -2274,7 +2274,7 @@ None.
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :------------------------------------------- | | :--------- | :--------- | :------------------------------------------- |
| save | dispatched | <code>any</code> | | save | dispatched | <code>null</code> |
| update | dispatched | <code>{ prevValue: any; value: any; }</code> | | update | dispatched | <code>{ prevValue: any; value: any; }</code> |
## `Modal` ## `Modal`
@ -2464,7 +2464,7 @@ None.
| :--------- | :--------- | :------------------------------------------------------------------------------------------------------------- | | :--------- | :--------- | :------------------------------------------------------------------------------------------------------------- |
| blur | dispatched | <code>FocusEvent &#124; CustomEvent<FocusEvent></code> | | blur | dispatched | <code>FocusEvent &#124; CustomEvent<FocusEvent></code> |
| select | dispatched | <code>{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }</code> | | select | dispatched | <code>{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }</code> |
| clear | dispatched | <code>any</code> | | clear | dispatched | <code>null</code> |
| keydown | forwarded | -- | | keydown | forwarded | -- |
| keyup | forwarded | -- | | keyup | forwarded | -- |
| focus | forwarded | -- | | focus | forwarded | -- |
@ -3193,21 +3193,21 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :--------------- | | :--------- | :--------- | :---------------- |
| expand | dispatched | <code>any</code> | | expand | dispatched | <code>null</code> |
| collapse | dispatched | <code>any</code> | | collapse | dispatched | <code>null</code> |
| click | forwarded | -- | | click | forwarded | -- |
| mouseover | forwarded | -- | | mouseover | forwarded | -- |
| mouseenter | forwarded | -- | | mouseenter | forwarded | -- |
| mouseleave | forwarded | -- | | mouseleave | forwarded | -- |
| change | forwarded | -- | | change | forwarded | -- |
| input | forwarded | -- | | input | forwarded | -- |
| focus | forwarded | -- | | focus | forwarded | -- |
| blur | forwarded | -- | | blur | forwarded | -- |
| keydown | forwarded | -- | | keydown | forwarded | -- |
| keyup | forwarded | -- | | keyup | forwarded | -- |
| clear | dispatched | -- | | clear | dispatched | -- |
## `SearchSkeleton` ## `SearchSkeleton`
@ -3383,11 +3383,11 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :------------ | :--------- | :--------------- | | :------------ | :--------- | :---------------- |
| open | dispatched | <code>any</code> | | open | dispatched | <code>null</code> |
| close | dispatched | <code>any</code> | | close | dispatched | <code>null</code> |
| click:overlay | dispatched | <code>any</code> | | click:overlay | dispatched | <code>null</code> |
## `SideNavDivider` ## `SideNavDivider`
@ -4679,12 +4679,12 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :--------------- | | :--------- | :--------- | :---------------- |
| open | dispatched | <code>any</code> | | open | dispatched | <code>null</code> |
| close | dispatched | <code>any</code> | | close | dispatched | <code>null</code> |
| click | forwarded | -- | | click | forwarded | -- |
| mousedown | forwarded | -- | | mousedown | forwarded | -- |
## `TooltipDefinition` ## `TooltipDefinition`
@ -4708,15 +4708,15 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :--------------- | | :--------- | :--------- | :---------------- |
| open | dispatched | <code>any</code> | | open | dispatched | <code>null</code> |
| close | dispatched | <code>any</code> | | close | dispatched | <code>null</code> |
| click | forwarded | -- | | click | forwarded | -- |
| mouseover | forwarded | -- | | mouseover | forwarded | -- |
| mouseenter | forwarded | -- | | mouseenter | forwarded | -- |
| mouseleave | forwarded | -- | | mouseleave | forwarded | -- |
| focus | forwarded | -- | | focus | forwarded | -- |
## `TooltipFooter` ## `TooltipFooter`

View file

@ -4915,9 +4915,9 @@
} }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "active", "detail": "any" }, { "type": "dispatched", "name": "active", "detail": "null" },
{ "type": "dispatched", "name": "inactive", "detail": "any" }, { "type": "dispatched", "name": "inactive", "detail": "null" },
{ "type": "dispatched", "name": "clear", "detail": "any" }, { "type": "dispatched", "name": "clear", "detail": "null" },
{ {
"type": "dispatched", "type": "dispatched",
"name": "select", "name": "select",
@ -5115,8 +5115,8 @@
{ "name": "loading", "default": false, "slot_props": "{}" } { "name": "loading", "default": false, "slot_props": "{}" }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "load", "detail": "any" }, { "type": "dispatched", "name": "load", "detail": "null" },
{ "type": "dispatched", "name": "error", "detail": "any" } { "type": "dispatched", "name": "error", "detail": "null" }
], ],
"typedefs": [], "typedefs": [],
"rest_props": { "type": "Element", "name": "img" } "rest_props": { "type": "Element", "name": "img" }
@ -5920,7 +5920,7 @@
], ],
"slots": [], "slots": [],
"events": [ "events": [
{ "type": "dispatched", "name": "save", "detail": "any" }, { "type": "dispatched", "name": "save", "detail": "null" },
{ {
"type": "dispatched", "type": "dispatched",
"name": "update", "name": "update",
@ -6796,7 +6796,7 @@
"name": "select", "name": "select",
"detail": "{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }" "detail": "{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }"
}, },
{ "type": "dispatched", "name": "clear", "detail": "any" }, { "type": "dispatched", "name": "clear", "detail": "null" },
{ "type": "forwarded", "name": "keydown", "element": "input" }, { "type": "forwarded", "name": "keydown", "element": "input" },
{ "type": "forwarded", "name": "keyup", "element": "input" }, { "type": "forwarded", "name": "keyup", "element": "input" },
{ "type": "forwarded", "name": "focus", "element": "input" } { "type": "forwarded", "name": "focus", "element": "input" }
@ -9261,8 +9261,8 @@
} }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "expand", "detail": "any" }, { "type": "dispatched", "name": "expand", "detail": "null" },
{ "type": "dispatched", "name": "collapse", "detail": "any" }, { "type": "dispatched", "name": "collapse", "detail": "null" },
{ "type": "forwarded", "name": "click", "element": "SearchSkeleton" }, { "type": "forwarded", "name": "click", "element": "SearchSkeleton" },
{ {
"type": "forwarded", "type": "forwarded",
@ -9831,9 +9831,9 @@
], ],
"slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }], "slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }],
"events": [ "events": [
{ "type": "dispatched", "name": "open", "detail": "any" }, { "type": "dispatched", "name": "open", "detail": "null" },
{ "type": "dispatched", "name": "close", "detail": "any" }, { "type": "dispatched", "name": "close", "detail": "null" },
{ "type": "dispatched", "name": "click:overlay", "detail": "any" } { "type": "dispatched", "name": "click:overlay", "detail": "null" }
], ],
"typedefs": [], "typedefs": [],
"rest_props": { "type": "Element", "name": "nav" } "rest_props": { "type": "Element", "name": "nav" }
@ -13104,8 +13104,8 @@
} }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "open", "detail": "any" }, { "type": "dispatched", "name": "open", "detail": "null" },
{ "type": "dispatched", "name": "close", "detail": "any" }, { "type": "dispatched", "name": "close", "detail": "null" },
{ "type": "forwarded", "name": "click", "element": "div" }, { "type": "forwarded", "name": "click", "element": "div" },
{ "type": "forwarded", "name": "mousedown", "element": "div" } { "type": "forwarded", "name": "mousedown", "element": "div" }
], ],
@ -13193,8 +13193,8 @@
} }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "open", "detail": "any" }, { "type": "dispatched", "name": "open", "detail": "null" },
{ "type": "dispatched", "name": "close", "detail": "any" }, { "type": "dispatched", "name": "close", "detail": "null" },
{ "type": "forwarded", "name": "click", "element": "button" }, { "type": "forwarded", "name": "click", "element": "button" },
{ "type": "forwarded", "name": "mouseover", "element": "button" }, { "type": "forwarded", "name": "mouseover", "element": "button" },
{ "type": "forwarded", "name": "mouseenter", "element": "button" }, { "type": "forwarded", "name": "mouseenter", "element": "button" },

View file

@ -1,7 +1,7 @@
<script> <script>
/** /**
* @event {any} load * @event {null} load
* @event {any} error * @event {null} error
*/ */
/** /**

View file

@ -1,6 +1,6 @@
<script> <script>
/** /**
* @event {any} save * @event {null} save
* @event {{ prevValue: any; value: any; }} update * @event {{ prevValue: any; value: any; }} update
*/ */

View file

@ -8,7 +8,7 @@
* @typedef {string} MultiSelectItemText * @typedef {string} MultiSelectItemText
* @typedef {{ id: MultiSelectItemId; text: MultiSelectItemText; }} MultiSelectItem * @typedef {{ id: MultiSelectItemId; text: MultiSelectItemText; }} MultiSelectItem
* @event {{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }} select * @event {{ selectedIds: MultiSelectItemId[]; selected: MultiSelectItem[]; unselected: MultiSelectItem[]; }} select
* @event {any} clear * @event {null} clear
*/ */
/** /**

View file

@ -1,7 +1,7 @@
<script> <script>
/** /**
* @event {any} expand * @event {null} expand
* @event {any} collapse * @event {null} collapse
*/ */
/** /**

View file

@ -1,7 +1,7 @@
<script> <script>
/** /**
* @event {any} open * @event {null} open
* @event {any} close * @event {null} close
*/ */
/** /**

View file

@ -1,7 +1,7 @@
<script> <script>
/** /**
* @event {any} open * @event {null} open
* @event {any} close * @event {null} close
*/ */
/** Specify the tooltip text */ /** Specify the tooltip text */

View file

@ -1,9 +1,9 @@
<script> <script>
/** /**
* @typedef {{ href: string; text: string; description?: string; }} HeaderSearchResult * @typedef {{ href: string; text: string; description?: string; }} HeaderSearchResult
* @event {any} active * @event {null} active
* @event {any} inactive * @event {null} inactive
* @event {any} clear * @event {null} clear
* @event {{ value: string; selectedResultIndex: number; selectedResult: HeaderSearchResult }} select * @event {{ value: string; selectedResultIndex: number; selectedResult: HeaderSearchResult }} select
* @slot {{ result: HeaderSearchResult; index: number }} * @slot {{ result: HeaderSearchResult; index: number }}
*/ */

View file

@ -1,8 +1,8 @@
<script> <script>
/** /**
* @event {any} open * @event {null} open
* @event {any} close * @event {null} close
* @event {any} click:overlay * @event {null} click:overlay
*/ */
/** Set to `true` to use the fixed variant */ /** Set to `true` to use the fixed variant */

View file

@ -13,6 +13,10 @@
fadeIn fadeIn
ratio="16x9" ratio="16x9"
src="" src=""
on:load="{() => {}}" on:load="{(e) => {
on:error="{() => {}}" console.log(e.detail); // null
}}"
on:error="{(e) => {
console.log(e.detail); // null
}}"
/> />

View file

@ -49,7 +49,7 @@ export interface ImageLoaderProps
export default class ImageLoader extends SvelteComponentTyped< export default class ImageLoader extends SvelteComponentTyped<
ImageLoaderProps, ImageLoaderProps,
{ load: CustomEvent<any>; error: CustomEvent<any> }, { load: CustomEvent<null>; error: CustomEvent<null> },
{ error: {}; loading: {} } { error: {}; loading: {} }
> { > {
/** /**

View file

@ -18,7 +18,7 @@ export interface LocalStorageProps {
export default class LocalStorage extends SvelteComponentTyped< export default class LocalStorage extends SvelteComponentTyped<
LocalStorageProps, LocalStorageProps,
{ {
save: CustomEvent<any>; save: CustomEvent<null>;
update: CustomEvent<{ prevValue: any; value: any }>; update: CustomEvent<{ prevValue: any; value: any }>;
}, },
{} {}

View file

@ -228,7 +228,7 @@ export default class MultiSelect extends SvelteComponentTyped<
selected: MultiSelectItem[]; selected: MultiSelectItem[];
unselected: MultiSelectItem[]; unselected: MultiSelectItem[];
}>; }>;
clear: CustomEvent<any>; clear: CustomEvent<null>;
keydown: WindowEventMap["keydown"]; keydown: WindowEventMap["keydown"];
keyup: WindowEventMap["keyup"]; keyup: WindowEventMap["keyup"];
focus: WindowEventMap["focus"]; focus: WindowEventMap["focus"];

View file

@ -113,8 +113,8 @@ export interface SearchProps {
export default class Search extends SvelteComponentTyped< export default class Search extends SvelteComponentTyped<
SearchProps, SearchProps,
{ {
expand: CustomEvent<any>; expand: CustomEvent<null>;
collapse: CustomEvent<any>; collapse: CustomEvent<null>;
click: WindowEventMap["click"]; click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"]; mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"]; mouseenter: WindowEventMap["mouseenter"];

View file

@ -92,8 +92,8 @@ export interface TooltipProps
export default class Tooltip extends SvelteComponentTyped< export default class Tooltip extends SvelteComponentTyped<
TooltipProps, TooltipProps,
{ {
open: CustomEvent<any>; open: CustomEvent<null>;
close: CustomEvent<any>; close: CustomEvent<null>;
click: WindowEventMap["click"]; click: WindowEventMap["click"];
mousedown: WindowEventMap["mousedown"]; mousedown: WindowEventMap["mousedown"];
}, },

View file

@ -43,8 +43,8 @@ export interface TooltipDefinitionProps
export default class TooltipDefinition extends SvelteComponentTyped< export default class TooltipDefinition extends SvelteComponentTyped<
TooltipDefinitionProps, TooltipDefinitionProps,
{ {
open: CustomEvent<any>; open: CustomEvent<null>;
close: CustomEvent<any>; close: CustomEvent<null>;
click: WindowEventMap["click"]; click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"]; mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"]; mouseenter: WindowEventMap["mouseenter"];

View file

@ -43,9 +43,9 @@ export interface HeaderSearchProps
export default class HeaderSearch extends SvelteComponentTyped< export default class HeaderSearch extends SvelteComponentTyped<
HeaderSearchProps, HeaderSearchProps,
{ {
active: CustomEvent<any>; active: CustomEvent<null>;
inactive: CustomEvent<any>; inactive: CustomEvent<null>;
clear: CustomEvent<any>; clear: CustomEvent<null>;
select: CustomEvent<{ select: CustomEvent<{
value: string; value: string;
selectedResultIndex: number; selectedResultIndex: number;

View file

@ -43,9 +43,9 @@ export interface SideNavProps
export default class SideNav extends SvelteComponentTyped< export default class SideNav extends SvelteComponentTyped<
SideNavProps, SideNavProps,
{ {
open: CustomEvent<any>; open: CustomEvent<null>;
close: CustomEvent<any>; close: CustomEvent<null>;
["click:overlay"]: CustomEvent<any>; ["click:overlay"]: CustomEvent<null>;
}, },
{ default: {} } { default: {} }
> {} > {}