Class MyClass is defined in my-class.ts. The class is decorated with a custom decorator. The result of the decorator is some logic that will eventually cause MyClass to be instantiated.
Another file, other-file.ts, imports my-class.ts with:
other-file.ts has no explicit reference to MyClass, as it will automatically be instantiated and used as needed as a result of its decorator.
This works fine, until I try to import an interface, exported by my-class.ts
If I change the import within other-file.ts to:
import {ISomeInterface} from 'my-class'`;
I can now reference ISomeInterface within other-file.ts, but now the contents of my-class.ts is never actually compiled.
I suspect this is due to some optimization by the Typescript compiler. In general it would make sense that if nothing but interfaces were referenced from a class, there's no reason to generate javascript for it; however, the use of decorators makes that assumption erroneous.