People don't understand the difference between these things:
export default class Foo {}
/* or */
class Foo {}
export = Foo;
/* or */
export class Foo { }
People also don't understand the difference between these things:
import x = require('y');
import x from 'y';
import { x } from 'y'
import * as x from 'y';
We need to write a comprehensive answer that explains which import statements correctly acquire which exports, and also describe auto-lifting behavior present in some loaders.