什么是打字稿再出口?
问题描述:
通过阅读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";
Question2: 他们为什么称之为再出口?很混乱!我的印象是重新导出会替换模块中的原始导入对象。
答
问题1
export {A as B} from "./file1";
这意味着进口A
从./file1
并将其导出为B
问题2 这是一个再出口,因为出口这是已经出口元素(由源模块)
再出口经常使用捆绑类似的类。
// 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";
现在,您可以从单个文件导入这两个验证
它会回答你的问题,如果我只是说这是进口{A}从'相当于'。/ file1'后跟'export {A as B}'? –
@ E_net4我完全可以理解它:) –
文件是一个模块。默认情况下没有公开。通过导出,您可以将您的模块/文件公开的内容制作成其他文件。您也可以重新导出从其他文件导入的具有不同名称的项目(在这种情况下,将文件1中的A导出为B)。将这些东西捆绑在一起或隐藏实现的细节很有用。 – toskv