2

エラーメッセージ

コンパイルエラー。詳細については、エラーリストを参照してください... / 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
    };
}

...

質問

gallery.tsVisual Studioで[サイズ]にマウスを合わせると、正しい定義が表示されるので、明らかに関数を見つけることができます。TSコンパイラがこのエラーを表示するのはなぜですか?

関数はのSize()ルートレベルにjquery.custom.jsあります。グローバルスコープが必要です。

4

1 に答える 1

2

JavaScriptファイルを参照しても型情報は取得できません。その関数をTypeScriptで作成するか、その定義ファイルを作成することができますjquery.custom.d.ts

于 2012-12-26T22:42:32.543 に答える