Angular(6(Router"Params"对象声明如下:
export declare type Params = {
[key: string]: any;
};
按如下方式实例化它是错误的吗?-
newParams = new Params();
然后按如下方式添加项目:
params.push({name: value});
Pycharm说我无法用这种方式初始化。Params是一种类型还是某种更高级别的类型,需要用其他方式处理?
在使用Params类型alias
的情况下,它告诉您它是(或期望(一个具有键|值对的对象文字,值的类型为any
export declare type Params = {
[key: string]: any;
};
它不是class
,所以你不能实例化它。官方称它为type alias
,它的行为更像是一个接口而不是一个类,但有一些区别,例如不能由类实现
这并没有太大的帮助,因为每个对象都可以有键值对,但在某些情况下,别名用于文档目的
在ActivatedRoute文档中,我们可以看到params
Observable返回类型为Params
的对象,因此我们知道可以使用属性访问器括号符号route.snapshot.params["id"];
访问一些值
params Observable<Params>
An observable of the matrix parameters scoped to this route
我想它比这更复杂,但简单的答案是,只需用一个空对象初始化它,如下所示:
const params: Params = {};
它取自Angular开源。。。有时最好的方法就是挖掘来源:-(