第一种形式用于 CommonJS 和 AMD 模块系统。您必须将export = React 与import React = require('./React') 匹配
参见documentation,它给出了这个例子:
ZipCodeValidator.ts
let numberRegexp = /^[0-9]+$/;
class ZipCodeValidator {
isAcceptable(s: string) {
return s.length === 5 && numberRegexp.test(s);
}
}
export = ZipCodeValidator;
Test.ts
import zip = require("./ZipCodeValidator");
// Some samples to try
let strings = ["Hello", "98052", "101"];
// Validators to use
let validator = new zip();
// Show whether each string passed each validator
strings.forEach(s => {
console.log(`"${ s }" - ${ validator.isAcceptable(s) ? "matches" : "does not match" }`);
});
export as namespace 表单创建了一个全局变量,因此无需导入即可使用它,但您仍可以使用import { name } from "some-library" 导入表单来导入它。请参阅给出此示例的documentation:
数学库.d.ts
export const isPrime(x: number): boolean;
export as namespace mathLib;
然后可以将库用作模块中的导入:
import { isPrime } from "math-lib";
isPrime(2);
mathLib.isPrime(2); // ERROR: can't use the global definition from inside a module
它也可以用作全局变量,但只能在脚本内部使用。 (脚本是没有导入或导出的文件。)
mathLib.isPrime(2);
这里有一个泛型类型库,它不知道正在使用哪个模块系统,因此它试图覆盖所有基础。