Name collision by module import in Angular 2 - is there a way to prevent it

9ilsdx 9rvj 0lo picture 9ilsdx 9rvj 0lo · Nov 18, 2016 · Viewed 7.8k times · Source

I've almost caused a name collision, because I've created a class with common name Message, which already exists in PrimeNG:

import {Message} from "primeng/primeng";
import {Message} from "./dto";

Because it is my code, I could simply rename the class to anything else (like MessageDTO). But if this was the external class, I'd have an issue.

Is there any way to import class with alias, or any other mean to deal with name conflicts? I Java you can refer to class using fully qualified name instead of import, which looks ugly but is often unavoidable. How it looks like in Angular 2/TypeScript?

Answer

ranakrunal9 picture ranakrunal9 · Nov 18, 2016

As per TypeScript import document imports can also be renamed same as below :

import { Message } from "primeng/primeng";
import { Message as MessageDTO } from "./dto";