Skip to content

Commit

Permalink
fix(router): Allow undefined inputs on routerLink (#39151)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
PowerKiKi authored and atscott committed Oct 12, 2020
1 parent 72f4497 commit b0b4953
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 22 deletions.
16 changes: 6 additions & 10 deletions goldens/public-api/router/router.d.ts
Expand Up @@ -376,13 +376,11 @@ export declare class RouterEvent {
}

export declare class RouterLink implements OnChanges {
fragment: string;
fragment?: string;
preserveFragment: boolean;
/** @deprecated */ set preserveQueryParams(value: boolean);
queryParams: {
[k: string]: any;
};
queryParamsHandling: QueryParamsHandling;
queryParams?: Params | null;
queryParamsHandling?: QueryParamsHandling | null;
replaceUrl: boolean;
set routerLink(commands: any[] | string | null | undefined);
skipLocationChange: boolean;
Expand Down Expand Up @@ -410,14 +408,12 @@ export declare class RouterLinkActive implements OnChanges, OnDestroy, AfterCont
}

export declare class RouterLinkWithHref implements OnChanges, OnDestroy {
fragment: string;
fragment?: string;
href: string;
preserveFragment: boolean;
/** @deprecated */ set preserveQueryParams(value: boolean);
queryParams: {
[k: string]: any;
};
queryParamsHandling: QueryParamsHandling;
queryParams?: Params | null;
queryParamsHandling?: QueryParamsHandling | null;
replaceUrl: boolean;
set routerLink(commands: any[] | string | null | undefined);
skipLocationChange: boolean;
Expand Down
19 changes: 7 additions & 12 deletions packages/router/src/directives/router_link.ts
Expand Up @@ -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';


Expand Down Expand Up @@ -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`.
Expand Down Expand Up @@ -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`.
Expand Down

0 comments on commit b0b4953

Please sign in to comment.