2

私はTypeScriptを学んでいますが、噛むことができる以上に噛んでいるのではないかと心配しています。のチュートリアルと例を見つけました

しかし、私はそれを一度にすべて動作させることはできません。

3つのファイルがあり、すべて個別のjQueryプラグインが含まれていますが、いくつかの定数を共有しています。これらを使用するすべてのページに個別のtsファイルがあります。cshtmlでこれらのページごとのTSファイルをとして参照し、このページに「<script data-main="app/this-page" type="text/javascript" src="lib/require.js"></script>プラグインをインポートしてから」のように表示させたい$("#someId").runMyPlugin(someSettings);

誰かが私にアプローチを勧めてもらえますか?エクスポートとは何ですか?何をインポートすればよいですか?1つのクラスで何が起こりますか?

4

3 に答える 3

1

定数がクラス、つまり Constants.ts で定義されている場合

export class Constants {
   constant1: string = "firstConstant";
   constant2: string = "secondConstant";
}

次に、このクラスをエクスポートし、必要な場所にインポートします。
すなわち

import ref_Constants = module("./Constants");  
var firstConstant = ref_Constants.Constants.constant1;

AMD モジュールを使用すると、必要に応じて Constants.js が自動的に読み込まれます。

更新 OK、JQuery の require.js を使用してプラグインをエクスポートするには、$ 記号にエクスポートする必要があります。
これは、require.config と shim プロパティでのみ実行できます。次のようなものが必要になります。

require.config({
    baseUrl: '../',
    paths: {
        'jquery': 'lib/jquery-1.7.2',
        'myjqueryextension': 'lib/myjqueryextension' // note this is the .js file
    }, 
    shim: {
        jquery: {
            exports: '$'
        },
        myjqueryextension: {
            exports: '$'
        }
    }
});

require(['jquery','myjqueryextension'], 
    ($, myjqueryextension) => {
        // note that your extension will be attached to $ here, because of the shim
        $('#test').myExtensionFunction('foo', 'bar');
    });

ここで重要な部分は、shim の exports: '$' 行です。これにより、拡張機能が $ に添付されます。

于 2013-03-07T14:38:25.657 に答える
0

セットアップと AMD/RequireJS Typescript ワークフローで同様の問題が発生していました。プロジェクトの例を Github に投稿しました。

shim ファイルを必要とせずに、Gulp、RequireJS、および Typescript を組み合わせました。また、Require とすべてのベンダー ファイルを取得し、それらをアプリ ファイルにバンドルして、アプリ全体を実行する 1 つの縮小された JS ファイルを生成するタスクも含まれています。うまくいけば、これは人々を助けることができます.

https://github.com/abogartz/typescript-amd-gulp-example

于 2015-04-19T23:30:13.150 に答える