创建(实例化)已声明类型的typescript对象



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文档中,我们可以看到paramsObservable返回类型为Params的对象,因此我们知道可以使用属性访问器括号符号route.snapshot.params["id"];访问一些值

params  Observable<Params>  
An observable of the matrix parameters scoped to this route

我想它比这更复杂,但简单的答案是,只需用一个空对象初始化它,如下所示:

const params: Params = {};

它取自Angular开源。。。有时最好的方法就是挖掘来源:-(

最新更新