InjectionToken在Angular 4中引入OpaqueToken并被标记为已弃用.
根据手册,它应该被用作
const anyToken = new InjectionToken('any');
Run Code Online (Sandbox Code Playgroud)
对于无类型的令牌,以及
const numberToken = new InjectionToken<number>('number');
Run Code Online (Sandbox Code Playgroud)
对于键入的令牌.
但是,键入的令牌仍然可以在注入时注入并使用不同的类型,TypeScript就可以了,不是吗?
constructor(@Inject(numberToken) any, @Inject(numberToken) string: string) { ... }
Run Code Online (Sandbox Code Playgroud)
如何InjectionToken从TypeScript类型系统中受益?
OpaqueToken如果这两者之间没有实际差异,为什么被弃用?