为什么 Angular 激活的路由参数类型为“any”?

Dan*_*cal 5 angular-routing angular2-routing angular angular-router

出于好奇,我尝试将ActivatedRoute的 param 分配给定义为数字的变量:

public id: number;

constructor(public activatedRoute: ActivatedRouter) {}

public ngOnInit() {
    this.activatedRoute.params.take(1).subscribe((params) => {
        this.id = params['id']; // I was expecting to see a warning here
    }
}
Run Code Online (Sandbox Code Playgroud)

...并且它在我的 IDE 和 tslint 中没有任何警告地通过了。所以我深入研究它并发现它发出声明的参数此处)以包含any元素:

export type Params = {
  [key: string]: any
};
Run Code Online (Sandbox Code Playgroud)

问题是为什么?AFAIK 所有参数始终是字符串。有没有办法让 Angular 知道我们的一些参数应该是numberorarray并且它会解析它?