У меня есть этот код, который работает:Как добавить свойство во время выполнения в машинописном
if ((<any>this.router).userIntendedRedirectRoute) {
this.router.navigate((<any>this.router).userIntendedRedirectRoute);
} else {
this.router.navigateBack();
}
В основном, в ранее кода, я добавляю свойство к маршрутизатору, а затем присвоить ему значение.
Затем я получаю это значение.
Это работает, но кажется, что оно должно быть отлито для нескольких раз.
Проблема, которую я пытаюсь решить, заключается в том, что маршрутизатор поступает из фреймворка, и я не могу напрямую изменить исходный код.
Мне очень нравится этот ответ. Использование квадратных скобок ясно показывает, что это динамическое свойство. Другими словами, разработчик отказывается от проверки типов для этого свойства. Обратите внимание, однако, что это порождает новую проблему в том, что компилятор помещает ее как ошибку «Implicity any». К счастью, команда TS создала флаг 'suppressImplicitAnyIndexErrors', который позволяет использовать это без возникновения ошибки. –
+1 FWIW 'Использование квадратных скобок ясно показывает, что это динамическое свойство' является известной и поддерживаемой концепцией – basarat
Это отлично работает с JSON Web Tokens, которые созданы на сервере, поэтому многие свойства создаются во время выполнения! Большое спасибо ! – skiabox