From 4cfb34b7022ca4a784254ae6cf8c74e05470a967 Mon Sep 17 00:00:00 2001 From: laco0416 Date: Tue, 30 Jun 2015 16:48:58 +0900 Subject: [PATCH] Add custom element constructor definition --- webcomponents.js/webcomponents.js-tests.ts | 4 +++- webcomponents.js/webcomponents.js.d.ts | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/webcomponents.js/webcomponents.js-tests.ts b/webcomponents.js/webcomponents.js-tests.ts index 316f9dd8e..e9c899090 100644 --- a/webcomponents.js/webcomponents.js-tests.ts +++ b/webcomponents.js/webcomponents.js-tests.ts @@ -10,10 +10,12 @@ var fooProto = Object.create(HTMLElement.prototype, { } }); -document.registerElement("x-foo", { +var XFoo = document.registerElement("x-foo", { prototype: fooProto }); +var xFoo = new XFoo(); + window.CustomElements.hasNative; window.CustomElements.flags; window.CustomElements.ready; diff --git a/webcomponents.js/webcomponents.js.d.ts b/webcomponents.js/webcomponents.js.d.ts index 43e85373f..ba55ea573 100644 --- a/webcomponents.js/webcomponents.js.d.ts +++ b/webcomponents.js/webcomponents.js.d.ts @@ -10,6 +10,10 @@ declare module webcomponents { extends?: string; } + export interface CustomElementConstructor { + new():HTMLElement; + } + export interface CustomElementsPolyfill { hasNative: boolean; flags: any; @@ -38,7 +42,7 @@ declare module "webcomponents.js" { } interface Document { - registerElement(name: string, prototype: webcomponents.CustomElementInit): void; + registerElement(name: string, prototype: webcomponents.CustomElementInit): webcomponents.CustomElementConstructor; } interface Window {