Should be possible to force import of "unused" modules in case there are side-effects · Issue #9191 · microsoft/TypeScript (original) (raw)

TypeScript Version:

1.8.10

Code

MyService.ts

// A self-contained demonstration of the problem follows... import {ngModule} from './../module.ts';

export class MyService { }

ngModule.service('myService', MyService); // <- REALLY IMPORTANT SIDE-EFFECT

MyComponent.ts

import {MyService} from './MyService.ts';

class MyComponent { constructor(private myService: MyService) { } // ... }

Expected behavior:
(I know this sort-of-tree-shaking is "by design", but by the principle of least astonishment, expected behavior is this)

MyComponent.js

var MyService_1 = require('./MyService'); var MyComponent = (function() { function MyComponent(myService) { this.myService = myService; }; // ... })();

Actual behavior:
MyComponent.js

var MyComponent = (function() { function MyComponent(myService) { this.myService = myService; }; // ... })();

And then AngularJS is all "myServiceProvider not found" and crashy.