interface - TypeScript:跨文件合并接口(interface)

标签 interface merge typescript

我正在用 TypeScript 构建一个站点,并获得了一个 JS 类来使用该钩子(Hook)连接到 JQuery(即您可以通过

$.scPlayer.functionName()

jquery.d.ts 中的核心 JQuery 定义当然不知道这一点,因此编译器会抛出错误(即使实际代码在浏览器中运行)。所以我试图将 JQueryStatic 接口(interface)与我创建的接口(interface)合并,即

interface JQueryStatic
{
    scPlayer:any;
}

据我所知,TS 编译器应该认识到这两个接口(interface)是相同的并将它们合并,将我的属性添加到另一个接口(interface)。

现在,如果我将它包含在 JQuery 定义文件中,无论是在现有定义中(显然)还是作为一个新的、单独的 JQueryStatic 接口(interface),这都可以正常工作......但理想情况下我想避免更改它我健忘的 future self ,所以我试图在一个单独的定义文件中创建那个新界面。但这不起作用 - 似乎我的新界面只是覆盖了 JQuery 界面。

这可能吗?我做错了什么?

最佳答案

您的界面工作正常。我已将其添加到 Visual Studio 中名为 scplayer.d.ts 的文件中的 jquery.d.ts 旁边。

我从 nuget 中获取了 jQuery 类型定义。

interface JQueryStatic {
    scPlayer: any;
}

这使接口(interface)与 jQuery 定义分离。

Solution Explorer

关于interface - TypeScript:跨文件合并接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166330/

相关文章:

java - fragment 到 Activity 通信

r - R 中的合并导致比数据帧之一多的行

javascript - 打印 4 到 9999 之间的数字的根

javascript - 函数不会停止运行 Angular 5

java - 如何将 Fragment 的上下文转换为界面

reflection - 在 Go 中应该避免使用反射吗?

java - 在 Java 中针对接口(interface)进行编程与在 C/C++ 中使用头文件的概念相同吗?

git - 从 master 分支和从 dev 分支 merge 的区别

python - 如何沿列轴连接两个具有不同索引的数据框

knockout.js - TypeScript 不是有意为我处理 this 范围吗?