javascript - Compilarea spațiilor de nume TypeScript cu mai puțină duplicare a codului


Folosesc gulp-typescript pentru a transpila fișierele mele TypeScript în JS. Și totul funcționează bine, doar că sunt surprins că namespace-urile sunt duplicate pentru fiecare fișier în fișierul .js rezultat. Ia acest exemplu:

LettersOnlyValidator.ts:

namespace Validation {
    const lettersRegexp = /^[A-Za-z]+$/;
    export class LettersOnlyValidator implements StringValidator {
        isAcceptable(s: string) {
            return lettersRegexp.test(s);
        }
    }
}

ZipCodeValidator.ts:

namespace Validation {
    const numberRegexp = /^[0-9]+$/;
    export class ZipCodeValidator implements StringValidator {
        isAcceptable(s: string) {
            return s.length === 5 && numberRegexp.test(s);
        }
    }
}

Se compilează în app.js:

var Validation;
(function (Validation) {
    const lettersRegexp = /^[A-Za-z]+$/;
    class LettersOnlyValidator {
        isAcceptable(s) {
            return lettersRegexp.test(s);
        }
    }
    Validation.LettersOnlyValidator = LettersOnlyValidator;
})(Validation || (Validation = {}));
var Validation;
(function (Validation) {
    const numberRegexp = /^[0-9]+$/;
    class ZipCodeValidator {
        isAcceptable(s) {
            return s.length === 5 && numberRegexp.test(s);
        }
    }
    Validation.ZipCodeValidator = ZipCodeValidator;
})(Validation || (Validation = {}));

Acesta este rezultatul meu așteptat:

var Validation;
(function (Validation) {
    const lettersRegexp = /^[A-Za-z]+$/;
    class LettersOnlyValidator {
        isAcceptable(s) {
            return lettersRegexp.test(s);
        }
    }
    const numberRegexp = /^[0-9]+$/;
    class ZipCodeValidator {
        isAcceptable(s) {
            return s.length === 5 && numberRegexp.test(s);
        }
    }
    Validation.LettersOnlyValidator = LettersOnlyValidator;
})(Validation || (Validation = {}));

Există opțiuni de compilare pentru a optimiza asta? Nu am putut găsi nimic în documentație: https://www.typescriptlang.org/docs/handbook/compiler-options.html

Sau există un motiv tehnic, de exemplu un conflict de domeniu pentru acesta?