TypeScript Namespaces
namespace Validation {
export interface StringValidator {
isValid(s: string): boolean;
}
export class EmailValidator implements StringValidator {
isValid(s: string): boolean {
return /^\S+@\S+\.\S+$/.test(s);
}
}
// Not exported: invisible outside Validation
const MIN_LENGTH = 3;
}
const validator = new Validation.EmailValidator();
console.log(validator.isValid("a@b.com")); // true