Using the ZipCodeValidator from merged namespace: zipValidator.isValid("12345"): true zipValidator.isValid("1234"): false zipValidator.isValid("abcde"): false In TypeScript, the merged namespace would look like: namespace Validation { export interface StringValidator { isValid(s: string): boolean; } export interface NumberValidator { isValid(n: number): boolean; } export class ZipCodeValidator implements StringValidator { isValid(s: string): boolean { return s.length === 5 && /^\d+$/.test(s); } } }