2016-07-20 39 views
1

我正在使用Angular2與Typescript。Angular2類名碰撞

我創建了一個名爲Input的類,並試圖在其中一個使用Input註釋的組件中使用它。現在,當我試圖創建我Input類的實例,我得到了一個不正確的實例InputMetadata這顯然是由於與Input進口衝突「@角/核心」:

import { Component, Input, OnInit } from '@angular/core'; 

import { Input } from '../controls/input'; 

@Component({ 
    moduleId: module.id, 
    selector: 'dynamic-form', 
    templateUrl: 'dynamic-form.component.html', 
    directives: [DynamicFormInputComponent, REACTIVE_FORM_DIRECTIVES], 
}) 
export class DynamicFormComponent implements OnInit { 
    ngOnInit() { 
     let control = new Input({}); 
     console.log(control); 

    } 
} 

有沒有一種辦法本地別名類例如以便我的Input將作爲FormInput導入。如果不是,則無需重命名我的Input類,該問題的合理解決方案是什麼。

+1

'import {... as ....}'........... –

+0

我真的會避免使用'reserved names'作爲你自己類的名字。但@ peeskillet的評論應該可以幫到你 –

回答

7

您可以使用此aliasing syntax of the import statement

import { Input as InputControl } from '../controls/input'; 

// … 
let control = new InputControl({}); 

你可能想看看製作雖然你Input類的詳細描述,因爲它不是真正清楚,如果它是一個組件,一個指令,一個(形式)控制, 或者是其他東西。