2

Dojo1.8はすでにAMDモジュールを定義しています。たとえば、次のようなことができます。

require(["dojo/_base/lang"], function (lang) {
  var ab = lang.mixin({a: 1}, {b: 2});
});

しかし、このモジュールをインポートしようとしたときにエラーが発生しないようにするにはどうすればよいですか?

import lang = module ("dojo/_base/lang");

可能ですか?

4

2 に答える 2

2

lang の typescript 定義ファイルが必要になります。このコードlang.d.tsと同じディレクトリに存在すると仮定します。lang.js

import lang = module('dojo/_base/lang')

var ab = lang.mixin({a: 1}, {b: 2});

でコンパイル

tsc --module amd yourfile.ts

生成する

define(["require", "exports", 'dojo/_base/lang'], function(require, exports, __lang__) {
    var lang = __lang__;
    var ab = lang.mixin({a: 1}, {b: 2});
}

なんらかの理由でディレクトリ構造を一致させたくない場合は、代わりにこれを行ってください。の兄弟であるlang.d.tsというサブディレクトリにあると仮定します。3rdtest.ts

test.ts:

///<reference path="3rd/lang.d.ts"/>
import lang = module('dojo/_base/lang');
var ab = lang.mixin({a: 1}, {b: 2});

3rd/lang.d.ts:

declare module 'dojo/_base/lang' {
...
}

上記と同じものを生成します。

于 2012-10-25T18:40:43.803 に答える
0

通常は dojo ローダーを介してモジュールをロードできます。import ステートメントを使用する必要はありません。ただし、必要に応じてモジュールを宣言する必要があります。

declare module "dojo/_base/lang" {
  export function ...
  export class ...
}
于 2012-10-25T17:01:20.363 に答える