2

错误信息

编译错误。有关详细信息,请参阅错误列表 .../Scripts/gallery.ts(13,15):当前范围内不存在名称“Size”

画廊.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
    };
}

...

问题

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

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

4

1 回答 1

2

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

于 2012-12-26T22:42:32.543 回答