Dojo 1.8 已经定义了 AMD 模块。例如,您可以执行以下操作:
require(["dojo/_base/lang"], function (lang) {
var ab = lang.mixin({a: 1}, {b: 2});
});
但是当我尝试导入这个模块时如何避免出错呢?
import lang = module ("dojo/_base/lang");
有可能吗?
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
that的子目录中,它是test.ts
.
测试.ts:
///<reference path="3rd/lang.d.ts"/>
import lang = module('dojo/_base/lang');
var ab = lang.mixin({a: 1}, {b: 2});
第三/lang.d.ts:
declare module 'dojo/_base/lang' {
...
}
生成与上面相同。
您通常可以通过 dojo 加载程序加载模块,您不必使用 import 语句。但是如果你想你必须声明模块:
declare module "dojo/_base/lang" {
export function ...
export class ...
}