2017-01-16 61 views
1

的正確標記類型在angular1中,我們只有提供者類型的標記 - 字符串。在angular2中,我所見過的所有例子似乎都使用了類別標記。例如:什麼是DI

class Car {} 

var injector = ResolveInjector.resolveAndCreate([ 
    { provide: Car, useClass: Car }, 
      ^^^ 
    { provide: Engine, useClass: Engine } 
]); 

我想知道什麼是有效的令牌類型?他們是否可以基於TypeScript數據類型或JavaScript數據類型?解決依賴性時,角度爲uses metadata。那麼有效的令牌類型是那些在元數據內有效的令牌類型?

回答

1
+0

感謝,關於'從文檔_Using的Object'令牌什麼OpaqueToken比使用'Object'作爲標記更可取,因爲它提供了更好的錯誤消息。 –

+0

對不起,無法理解這句話。之前的句子表示「'OpaqueToken'優於使用字符串」。這是有道理的,因爲'OpaqueToken'可以指向它聲明的來源,而錯誤的導入會導致錯誤。如果不使用全局常量,並且字符串在一個地方更改,則字符串會被複制,但可能會在其他地方被遺忘。 –

+0

我創建https://github.com/angular/angular/issues/13944 –