Typescript: A emissão com funções auxiliares de colisão de nomes está incorreta quando alvo> = ES2015

Criado em 23 set. 2019  ·  3Comentários  ·  Fonte: microsoft/TypeScript


Versão TypeScript: 3.6.3


Termos de pesquisa: helper rename

Código

// <strong i="13">@target</strong>: es2015

declare function __awaiter(): void;
class C {
    async func() {
    }
}

Comportamento esperado:
Algum tipo de erro é emitido (quando o alvo requer o helper) notificando o usuário que o código gerado não funcionará OU talvez o helper seja emitido com um nome alternativo.

Comportamento real:
O emit declara uma função __awaiter , mas tenta chamar __awaiter_1 .

Link Playground: aqui

Assuntos relacionados:

Bug

Comentários muito úteis

Correção: adicione mais sublinhados 😅

Todos 3 comentários

Correção: adicione mais sublinhados 😅

Existe alguma notícia sobre isso? Eu tive um problema semelhante quando um pacote npm que puxei já tinha o auxiliar __awaiter definido, então as chamadas mudaram para __awaiter_1 mas nenhuma função __awaiter_1 foi definida. Ter que escrever um script de pós-compilação de hack para definir __awaiter_1 = __awaiter após a compilação, seria ótimo se isso fosse corrigido.

Parece ser uma duplicata de # 33269, que foi corrigido por # 36541.

Esta página foi útil?
0 / 5 - 0 avaliações