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:
爲什麼你需要聲明要求的函數簽名?聲明做什麼?如果聲明,實現在哪裏?