“名称'大小'在当前范围内不存在”,即使我引用了它并且没有突出显示?

时间:2012-12-26 20:17:11

标签: typescript

错误消息

  

编译错误。   有关详情,请参阅错误列表    ... / Scripts / gallery.ts(13,15):当前范围中不存在“大小”这个名称

gallery.ts

/// <reference path="jquery.d.ts" />
/// <reference path="jquery.custom.js" />

(function ($) {
    var $body = $(document.body);
    var $win = $(window);
    var animTime = 1000;
    var $cg = $('#control_grid').data('flash', false);

    function fitImage(img, max, enlarge) {
        var ratio = Math.max(img.width / max.width, img.height / max.height);
        if (ratio < 1 && !enlarge) ratio = 1;
        return Size(Math.round(img.width / ratio), Math.round(img.height / ratio));
    }

    ...

jquery.custom.js

function Size(w, h) {
    return {
        'width': w,
        'height': h
    };
}

...

问题

当我在Visual Studio中的gallery.ts鼠标悬停在“大小”上时,它会提取正确的定义,所以很明显它可以找到该功能。为什么TS编译器会给我这个错误呢?

Size()函数位于jquery.custom.js的根级别,它应该具有全局范围,不是吗?

1 个答案:

答案 0 :(得分:2)

您不会通过引用JavaScript文件获取类型信息。您可以在TypeScript中编写该函数,也可以为其创建定义文件,即jquery.custom.d.ts