fix(router): Allow undefined inputs on routerLink (#39151)
This make it coherent with typing of Router.createUrlTree to which those inputs are directly forwarded to. And hence it allow to pass `undefined`, `null` or a value to the routerLink directive. BREAKING CHANGE: in most cases this should not break, but if you were accessing the values of `queryParams`, `fragment` or `queryParamsHandling` you might need to relax the typing to also accept `undefined` and `null`. Signed-off-by: Adrien Crivelli <adrien.crivelli@gmail.com> PR Close #39151
This commit is contained in:
@ -14,6 +14,7 @@ import {QueryParamsHandling} from '../config';
|
||||
import {Event, NavigationEnd} from '../events';
|
||||
import {Router} from '../router';
|
||||
import {ActivatedRoute} from '../router_state';
|
||||
import {Params} from '../shared';
|
||||
import {UrlTree} from '../url_tree';
|
||||
|
||||
|
||||
@ -122,24 +123,21 @@ export class RouterLink implements OnChanges {
|
||||
* @see {@link UrlCreationOptions#queryParams UrlCreationOptions#queryParams}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() queryParams!: {[k: string]: any};
|
||||
@Input() queryParams?: Params|null;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
* @see {@link UrlCreationOptions#fragment UrlCreationOptions#fragment}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() fragment!: string;
|
||||
@Input() fragment?: string;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
* @see {@link UrlCreationOptions#queryParamsHandling UrlCreationOptions#queryParamsHandling}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() queryParamsHandling!: QueryParamsHandling;
|
||||
@Input() queryParamsHandling?: QueryParamsHandling|null;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
@ -264,24 +262,21 @@ export class RouterLinkWithHref implements OnChanges, OnDestroy {
|
||||
* @see {@link UrlCreationOptions#queryParams UrlCreationOptions#queryParams}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() queryParams!: {[k: string]: any};
|
||||
@Input() queryParams?: Params|null;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
* @see {@link UrlCreationOptions#fragment UrlCreationOptions#fragment}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() fragment!: string;
|
||||
@Input() fragment?: string;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
* @see {@link UrlCreationOptions#queryParamsHandling UrlCreationOptions#queryParamsHandling}
|
||||
* @see {@link Router#createUrlTree Router#createUrlTree}
|
||||
*/
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@Input() queryParamsHandling!: QueryParamsHandling;
|
||||
@Input() queryParamsHandling?: QueryParamsHandling|null;
|
||||
/**
|
||||
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
||||
* `UrlCreationOptions`.
|
||||
|
Reference in New Issue
Block a user