代码之家  ›  专栏  ›  技术社区  ›  rubmz

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

  •  0
  • rubmz  · 技术社区  · 7 年前

    export declare type Params = {
        [key: string]: any;
    };
    

    按以下方式实例化它是错误的吗?-

    newParams = new Params();
    

    将项目添加到其中的步骤如下:

    params.push({name: value});
    

    Pycharm说我不能初始化我的方式。Params是需要以其他方式处理的类型还是某种更高级别的类型?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Drenai    7 年前

    键入 alias ,它告诉您它是(或预期)一个带有键|值对的对象文本,值的类型为 any

    export declare type Params = {
        [key: string]: any;
    };
    

    这不是 class ,所以不能实例化它。 Officially type alias ,其行为更像一个接口而不是一个类,但有一些不同之处,例如不能由类实现

    文档,我们可以看到 params Params -所以我们知道会有一些值可以使用属性访问器括号表示法访问 route.snapshot.params["id"];

    params  Observable<Params>  
    An observable of the matrix parameters scoped to this route
    
        2
  •  0
  •   rubmz    7 年前

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

    const params: Params = {};
    

    从角度开放源码。。。有时最好的方法就是挖掘来源:-)

    推荐文章