【问题标题】:Can intellisense pick up definitions without a definition file in TypeScript?智能感知可以在没有 TypeScript 定义文件的情况下获取定义吗?
【发布时间】:2012-10-21 22:27:03
【问题描述】:

我仍然对智能感知如何找到我的文件的定义感到困惑。例如,如果我有一个名为 file1.ts 的文件:

///<reference path="../typescript/jquery.d.ts" />  
function x() {
    $.fn.y = function()
    {
    };
}

还有另一个文件file2.ts:

///<reference path="../typescript/jquery.d.ts" />  

$('a').y();

我是否可以在我的 file2.ts 中包含对 file1.ts 的引用以使智能感知工作并告诉我 .y() 可以在 $('a') 之后添加,或者您是否必须在接口或定义文件,然后添加?

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    TypeScript 遍历依赖项 - 所以你只需要 file1.ts 中的 jQuery 定义:

    这可能最好用一个例子来解释:

    file1.ts

    ///<reference path="../typescript/jquery.d.ts" />
    
    interface JQuery {
        y: () => void;
    }
    
    function x() {
        $.fn.y = function()
        {
        };
    }
    

    file2.ts

    ///<reference path="../typescript/file1.ts" />  
    
    $('a').y();
    

    【讨论】:

    • 谢谢。所以我绝对需要在我的界面中声明函数?我希望打字稿可以像在 C# 中那样从 $.fn.y 定义中提取它。
    • 是的 - 如果不将 y 添加到 jQuery 界面,file2.ts 将显示错误。这是因为它是传递真实 jQuery 对象时使用的接口。
    猜你喜欢
    • 2016-04-24
    • 2012-09-27
    • 2017-01-01
    • 2022-07-10
    • 2023-04-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 2012-09-25
    相关资源
    最近更新 更多