簡體   English   中英

當我在Angular2 provider()別名中使用'Token'時,Typescript編譯器會給出'Unresolved variable or type'

[英]Typescript compiler gives 'Unresolved variable or type' when I use a 'Token' in Angular2 provider() aliasing

Typscript似乎無法處理Angular2 provide()別名函數中使用的“令牌”。 我想知道在typescript編譯器中是否有一個設置可以解決這個問題,或者我是否因使用字符串類型別名而陷入困境。

一個例子,就像它在main.ts bootstrapping函數中出現的那樣如下:

bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(**alias_token**, Child1aComponent)]);

Typescript(在webstorm,btw中)報告“未解析的變量或類型alias_token”錯誤。

有一個替代'provide'函數,它將字符串作為參數1,但如果可能的話,我更願意使用Token版本。

有什么想法嗎?

**alias_token**需要是有效類型(實際存在並導入)或者字符串或OpaqueToken

一些例子

class AliasToken {}

bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(AliasToken, {useClass  Child1aComponent})]);
...
constructor(private alias:AliasToken);
bootstrap(AppComponent, [ROUTER_PROVIDERS, provide('alias_token', {useClass: Child1aComponent})]);
...
constructor(@Inject('alias_token') private alias:AliasToken);
var alias_token = new OpaqueToken("alias");
bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(alias_token, {useClass: Child1aComponent})]);
...
constructor(@Inject(alias_token) private alias:AliasToken);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM