我有一个有 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/