正在为detect-element-resize.js编写TypeScript定义文件(.d.ts)
Writing TypeScript definition file (.d.ts) for detect-element-resize.js
这个JS文件的d.ts文件会是什么样子?这是项目页面。我一直在想如何编写定义文件,但它看起来真的很复杂,我想在这里问会更容易,因为我只会使用两个函数。
我要使用的功能如下:
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__);
}
}
}
试试这个:
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);
相关文章:
- 从HTML文件中的TypeScript(.ts)获取值
- 使用index.ts文件导出类会导致注入的构造函数中未定义
- 如何创建具有多个可能冲突的要求的.d.ts文件
- TypeScript 1.8,多个.ts文件中的单个文件-应用程序结构
- Typescript从其他ts文件扩展类
- Typescript 0.9.1.1模块被拆分为几个.ts文件
- Typescirpt:XMLHttpRequest未在.ts文件中定义
- 可以't在Visual Studio 2013中编译.d.ts TypeScript文件
- 为什么我无法编译引用 jquery.d.ts 的文件
- 有人可以对.d.ts文件的用途以及如何将该文件用于jQuery进行高级解释吗?
- TypeScript 编译器在 d.ts 文件 (v1.0 - v1.3) 中生成 JavaScript
- 在打字稿 0.9.1.1 中,在 jquery.d.ts 文件中声明模块“jquery” { export = $; }
- 将一个typescript库绑定到一个.js文件和一个.d.ts
- 如何从以前的typescript(.ts)文件中删除已编译的JS文件
- 配置WebStorm/PhpStorm将.ts文件编译为.js文件;js”;文件夹
- Angular 2-是否可以将我的路由存储在另一个文件中,并将它们导入到app.ts文件中(因为随着时间的推移,路由会不
- 从.d.ts文件导入Typescript
- Karma-coverage在JS文件中检查测试覆盖率,而不是Angular 2中的TS文件
- 如何创建导出现有模块的.d.ts文件
- 包含d的好处是什么?Ts (typescript的声明文件)在发布包中