InjectionToken
был введен в Angular 4, а OpaqueToken
отмечен как устаревший.
Согласно руководству, предполагается использовать его как
const anyToken = new InjectionToken('any');
для нетипизированного токена и
const numberToken = new InjectionToken<number>('number');
для введенного токена.
Однако, введенный токен все еще может быть введен и использован с другим типом при его вводе, TypeScript будет в порядке с этим, не так ли?
constructor(@Inject(numberToken) any, @Inject(numberToken) string: string) { ... }
Как InjectionToken
предполагается использовать систему типов TypeScript?
Почему OpaqueToken
устарел, если нет никакой практической разницы между этими двумя?