export interface StringValidator { isAcceptable(s: string): boolean; } export const numberRegexp = /^[0-9]+$/; export class ZipCodeValidator implements StringValidator { isAcceptable(s: string) { return s.length === 5 && numberRegexp.test(s); } } class ZipCodeValidator implements StringValidator { isAcceptable(s: string) { return s.length === 5 && numberRegexp.test(s); } } export { ZipCodeValidator }; export { ZipCodeValidator as mainValidator }; // a module can wrap one or more modules and combine all their exports using export * from "module" syntax. export * from "./StringValidator"; // exports interface 'StringValidator' export * from "./LettersOnlyValidator"; // exports class 'LettersOnlyValidator' export * from "./ZipCodeValidator"; // exports class 'ZipCodeValidator'