Skip to content

Commit 0a4f709

Browse files
authored
🤖 Merge PR DefinitelyTyped#71699 Teach TS turbo-frame, turbo-stream tags by @myabc
1 parent c84a636 commit 0a4f709

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

types/hotwired__turbo/hotwired__turbo-tests.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
import { FrameElement, StreamActions, StreamElement, visit } from "@hotwired/turbo";
1+
import { StreamActions, visit } from "@hotwired/turbo";
22

3-
const turboFrame = document.querySelector<FrameElement>("turbo-frame")!;
3+
const turboFrame = document.querySelector("turbo-frame")!;
4+
5+
// $ExpectType FrameElement
6+
turboFrame;
47

58
// @ts-expect-error
69
turboFrame.complete = true;
@@ -16,7 +19,10 @@ turboFrame.loading = "slow";
1619

1720
turboFrame.reload().catch(console.error);
1821

19-
const turboStream = document.querySelector<StreamElement>("turbo-stream")!;
22+
const turboStream = document.querySelector("turbo-stream")!;
23+
24+
// $ExpectType StreamElement
25+
turboStream;
2026

2127
// @ts-expect-error
2228
turboStream.action = "123";

types/hotwired__turbo/index.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ export type TurboFetchRequestErrorEvent = CustomEvent<{
218218
error: Error;
219219
}>;
220220

221+
export interface TurboElementTagNameMap {
222+
"turbo-frame": FrameElement;
223+
"turbo-stream": StreamElement;
224+
}
225+
221226
export interface TurboElementEventMap {
222227
"turbo:before-frame-render": TurboBeforeFrameRenderEvent;
223228
"turbo:before-fetch-request": TurboBeforeFetchRequestEvent;
@@ -245,6 +250,7 @@ export interface TurboGlobalEventHandlersEventMap extends TurboElementEventMap {
245250

246251
declare global {
247252
/* eslint-disable @typescript-eslint/no-empty-interface */
253+
interface HTMLElementTagNameMap extends TurboElementTagNameMap {}
248254
interface ElementEventMap extends TurboElementEventMap {}
249255
interface GlobalEventHandlersEventMap extends TurboGlobalEventHandlersEventMap {}
250256
/* eslint-enable @typescript-eslint/no-empty-interface */

0 commit comments

Comments
 (0)