1
阅读official document about Typescript module时我有点困惑。在Typescript中导入模块的正确方法是什么?
declare function require(moduleName: string): any;
// why declare require?
import { ZipCodeValidator as Zip } from "./ZipCodeValidator";
// Zip is being imported here, right?
if (needZipValidation) {
let ZipCodeValidator: typeof Zip = require("./ZipCodeValidator");
// Zip is already imported before if statement, why import again?
let validator = new ZipCodeValidator();
if (validator.isAcceptable("...")) { /* ... */ }
}
问题1:
import { ZipCodeValidator as Zip } from "./ZipCodeValidator";
此以上的代码行之后,ZipCodeValidator已经加载,并且可作为当前文件的模块中邮编。为什么后面的if条件在下面一行代码中再次加载?
let ZipCodeValidator: typeof Zip = require("./ZipCodeValidator");
注意:它们使用不同的方法加载相同的模块,一个是导入,另一个是需要的。为什么用不同的方式?
问题2:
为什么你需要声明要求的函数签名?声明做什么?如果声明,实现在哪里?