How to disable implicit import in typescript
How to disable implicit import in typescript
First of all, 'implicit import' is not a official term.
Here's what I called 'implicit import' thing.
I have 2 ts files:
file1: app.ts
import * as angular from 'angular'; // (*)
import component from './component';
file2: component.ts
const component : angular.IComponentOptions =
templateUrl: 'component.template.html'
;
export default component;
Here, in component.ts, even though the angular
is not imported, typescript compiler never shows any error. If I remove (*)
line in app.ts file, then typescript compiler complains that there's no angular namespace, so I thought that modules imported in app.ts are also implicitly imported in component.ts when app.ts imports component.ts. That's why I call this behavior 'implicit import'.(Please let me know the official term for this behavior if exists)
angular
(*)
How to disable this behavior? I want to make each ts file as complete one as possible.
2 Answers
2
First of all, 'implicit import' is not a official term.
The term you are looking for is global module
. Whichever type definition of angular
you are using defined a global angular
and therefore you can use this global without importing it.
global module
angular
angular
If a type definition defines a global ... and you use that type definition (which I am assuming you have to) ... you get a global. No two ways around it sorry.
You've run into this TypeScript issue: UMD globals such as angular
can be used in type positions even from a module. Ryan Cavanaugh claimed TypeScript was working as intended, but I agree with the reporter of that issue that the behavior makes no sense.
angular
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.