<!-- 🚨 STOP 🚨 𝗦𝗧𝗢𝗣 🚨 𝑺𝑻𝑶𝑷 🚨 Half of all issues filed here are duplicates, answered in the FAQ, or not appropriate for the bug tracker. Even if you think you've found a *bug*, please read the FAQ first, especially the Common "Bugs" That Aren't Bugs section! Please help us by doing the following steps before logging an issue: * Search: https://github.com/Microsoft/TypeScript/search?type=Issues * Read the FAQ: https://github.com/Microsoft/TypeScript/wiki/FAQ Please fill in the *entire* template below. --> From https://github.com/microsoft/vscode/issues/76482 <!-- Please try to reproduce the issue with `typescript@next`. It may have already been fixed. --> **TypeScript Version:** 3.6.0-dev.20190710 <!-- Search terms you tried before logging this (so others can find this issue more easily) --> **Search Terms:** - rename - object literal - alias **Code** For the JS: ```ts class A { } module.export = { A }; ``` 1. Rename `A` in `class A {}` **Expected behavior:** ```js class B { } module.export = { A: B }; ``` **Actual behavior:** ```js class B { } module.export = { B: A }; ``` The order in the exported object literal is swapped so we end up referencing `A` which no longer exists