什么是打字稿再出口?

时间:2016-09-23 19:18:12

标签: typescript

通过阅读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: 他们为什么称之为再出口?很混乱!我的印象是重新导出将替换其模块中的原始导入对象。

1 个答案:

答案 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";

现在您可以从单个文件中导入两个验证器