Angular(6) 路由器“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 开源中获取它......有时最好的方法就是挖掘源代码:-)
type ErrorResponse = {
message: string;
};
const error: ErrorResponse = { message: 'Ups' };