javascript - 如何扩展单个文件?

标签 javascript typescript

我有一个有 10 个页面的站点,它们共享一个 Typescript 文件,而且每个页面都有自己特定的 Typescript 文件。一个页面有一个 JQuery 插件 timepicker,因此我使用以下方法扩展 JQuery 对象:

interface JQuery {
    timepicker(options:any):JQuery;
}

但是我不希望任何其他 TypeScript 文件在 JQuery 对象上有时间选择器。我怎样才能只为这个文件扩展它?

它不允许我在命名空间内扩展 JQuery

模块有帮助吗?我不需要导入或导出任何东西,所以我不确定它是否合适,也不确定如何使用模块。

最佳答案

您可以将接口(interface)命名为更能反射(reflect)其本质的名称,例如:

interface JQueryWithTimePicker extends JQuery {
    timepicker(options: any): JQuery;
}

然后您需要时间选择器的文件可以使用向下转换为 JQueryWithTimePicker 的 JQuery 对象。

有时,当我需要向 DOM 节点添加属性时,我会使用这种策略。像这样的东西:

interface MyTreeElement extends HTMLElement
{
    Nodes: TreeNode[];
}

关于javascript - 如何扩展单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46810594/

相关文章:

arrays - 初始化对象数组 - Angular

javascript - Router.post 未连接到 AJAX

c# - 全局变量丢失导致函数分配失败

javascript - 带有 ExtJS 4.1 的 Google Apps 脚本

javascript - NestJS 是如何匹配注入(inject)目标和注入(inject)实例的?

reactjs - 不能在 getInitialProps 中使用 'fs'

javascript - 数字生成器 - 两个单独的值

javascript - 如何将事件分配给变量

node.js - Webpack 和 TypeScript : Cannot resolve module 'child_process' in node. d.ts

Angularjs 在代码隐藏中翻译