Versão do TypeScript: 2.2 até a atual
Código
Arquivo TS:
export class Object {}
tsconfig.json:
{"compilerOptions": {"target": "es5"}}
Comportamento esperado:
O módulo deve ser capaz de inicializar como no TypeScript 2.1.
Comportamento real:
O módulo falha ao inicializar; TypeError: Object is undefined
.
O código emitido é
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Object = (function () {
function Object() {
}
return Object;
}());
exports.Object = Object;
Claramente, Object.defineProperty
tem como objetivo fazer referência ao Object
global, mas obtém uma variável local não inicializada.
Como solução temporária, você pode nomear sua classe _Object
e escrever export { _Object as Object }
Isso deve ser um erro, semelhante ao erro que emitimos se você declarar seu próprio _this
.
PRs bem-vindos.