File: declarationFileForHtmlFileWithinDeclarationFile.js

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (34 lines) | stat: -rw-r--r-- 1,084 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//// [tests/cases/conformance/nonjsExtensions/declarationFileForHtmlFileWithinDeclarationFile.ts] ////

//// [component.d.html.ts]
// html modules were proposed at https://github.com/WICG/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md

// per proposal, `default` is user-defined, but if not present, will be the document of the imported module
declare var doc: Document;
export default doc;

// all other exports are just whatever was exported in module script blocks in the html file
export const blogPost: Element;

export class HTML5Element extends HTMLElement {
    connectedCallback(): void;
}

//// [file.d.ts]
export * as mod from "./component.html";

//// [main.ts]
import { mod } from "./file.js";

window.customElements.define("my-html5-element", mod.HTML5Element);

if (document !== mod.default) {
    document.body.appendChild(mod.blogPost);
}

//// [main.js]
import { mod } from "./file.js";
window.customElements.define("my-html5-element", mod.HTML5Element);
if (document !== mod.default) {
    document.body.appendChild(mod.blogPost);
}