Dojo 1.8 已经定义了 AMD 模块。例如,您可以执行以下操作:
require(["dojo/_base/lang"], function (lang) {
var ab = lang.mixin({a: 1}, {b: 2});
});
但是当我尝试导入此模块时如何避免出现错误?
import lang = module ("dojo/_base/lang");
可以吗?
最佳答案
您将需要 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
位于名为 3rd
的子目录中,该子目录是 test.ts
的同级目录。
测试.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' {
...
}
生成与上面相同的内容。
关于dojo - Typescript 可以使用现有的 AMD 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073404/