【问题标题】:Declaring methods for a javascript file in TypeScript:在 TypeScript 中为 javascript 文件声明方法:
【发布时间】:2013-04-12 09:08:15
【问题描述】:

我正在尝试导入屏蔽输入 jQuery 插件并能够在我们的打字稿文件中查看智能感知。据我了解,我需要做的就是创建一个定义文件并用我的打字稿文件引用所述定义文件。

现在,我只想要一个方法,我可以执行以下操作:

$("#date").mask("99/99/9999");

因此,我创建了一个 maskedinput.d.ts 文件:

declare interface maskedInput extends JQuery{
    mask(string) : void;
 };

但是,这似乎并不能解决问题。在我的 ts 文件中,当我开始输入

$('#some-id').

我没有得到方法掩码的智能感知。我在这里错过了什么?

【问题讨论】:

  • 正如瑞恩所说。基本上 $ 具有 JQuery 的接口类型。创建新界面不会改变这一点。

标签: javascript typescript


【解决方案1】:

改为这样做(接口是打开的):

interface JQuery {
    mask(string): void;
}

TypeScript 不会自动将 $('...') 表达式的类型更改为 maskedInput,只是因为有一些接口恰好扩展了 JQuery

【讨论】:

    猜你喜欢
    • 2013-08-20
    • 2012-10-31
    • 2018-10-27
    • 1970-01-01
    • 2021-03-25
    • 2018-03-11
    • 2019-11-12
    • 1970-01-01
    • 2017-09-21
    相关资源
    最近更新 更多