2016-07-29 7 views
0

Wie würde die d.ts-Datei für diese JS-Datei aussehen? Here ist die Projektseite. Ich habe versucht, herauszufinden, wie man die Definitionsdatei schreibt, aber es sieht wirklich kompliziert aus, ich dachte, es wäre einfacher, hier zu fragen, da es nur zwei Funktionen gibt, die ich verwenden würde.Schreiben der TypeScript-Definitionsdatei (.d.ts) für detect-element-resize.js

Die Funktionen würde ich aussehen wie diese verwenden:

window.addResizeListener = function(element, fn){ 
    if (attachEvent) element.attachEvent('onresize', fn); 
    else { 
     if (!element.__resizeTriggers__) { 
      if (getComputedStyle(element).position == 'static') element.style.position = 'relative'; 
      createStyles(); 
      element.__resizeLast__ = {}; 
      element.__resizeListeners__ = []; 
      (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers'; 
      element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + 
                        '<div class="contract-trigger"></div>'; 
      element.appendChild(element.__resizeTriggers__); 
      resetTriggers(element); 
      element.addEventListener('scroll', scrollListener, true); 

      /* Listen for a css animation to detect element display/re-attach */ 
      animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) { 
       if(e.animationName == animationName) 
        resetTriggers(element); 
      }); 
     } 
     element.__resizeListeners__.push(fn); 
    } 
}; 

window.removeResizeListener = function(element, fn){ 
    if (attachEvent) element.detachEvent('onresize', fn); 
    else { 
     element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); 
     if (!element.__resizeListeners__.length) { 
       element.removeEventListener('scroll', scrollListener); 
       element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__); 
     } 
    } 
} 
+0

Wenn Sie eine Definition kann nicht posten wollen Ihre d.ts Dateien auf eigene Faust Anfrage auf der definitiv getippten Git Repo https://github.com/DefinitelyTyped/DefinitelyTyped/issues – Magu

Antwort

0

Versuchen Sie folgendes:

declare interface Window { 
    addResizeListener(element: HTMLElement, fn:() => any); 
    removeResizeListener(element: HTMLElement, fn:() => any); 
} 
declare function addResizeListener(element: HTMLElement, fn:() => any); 
declare function removeResizeListener(element: HTMLElement, fn:() => any); 
Verwandte Themen