通过阅读official document,我不太了解再出口的含义。
在名为ParseIntBasedZipCodeValidator.ts
的文件中export class ParseIntBasedZipCodeValidator {
isAcceptable(s: string) {
return s.length === 5 && parseInt(s).toString() === s;
}
} // this part I understand
export {ZipCodeValidator as RegExpBasedZipCodeValidator} from "./ZipCodeValidator";
// this part I don't understand
以下是问题的摘要:
export {A as B} from "./file1";
问题: 请解释一下:
export {A as B} from "./file1";
问题2: 他们为什么称之为再出口?很混乱!我的印象是重新导出将替换其模块中的原始导入对象。
答案 0 :(得分:0)
问题1
export {A as B} from "./file1";
这意味着从A
导入./file1
并将其导出为B
问题2 它是一个reexport,因为它导出已经导出的元素(由源模块)
重新导出经常用于捆绑类似的类。
// EmailValidator.ts
class EmailValidator {
isValid(email: string): boolean { ... }
}
// PhoneNumberValidator.ts
class PhoneNumberValidator {
isValid(phoneNumber: string): boolean { ... }
}
// Validators.ts
export {EmailValidator} from "EmailValidator";
export {PhoneNumberValidator} from "PhoneNumberValidator";
现在您可以从单个文件中导入两个验证器