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

无法创建typescript类对象

  •  1
  • Dawit  · 技术社区  · 7 年前

    刚接触typescript时,我遇到了如下typescript类。

    export class Errors {
        errors: { [key: string]: string } = {};
    }
    

    errList: Errors = new Errors();
    
    errList = {'key':'value'};
    
    errList = [
          {
            Key: "code1",
            value: "err1"
          },
          {
            Key: "code2",
            value: "err2"
          },
        ]
    
    errList.errors = {
        [key1]:"myValueX" , [key3]:"myValueY"
    };
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Titian Cernicova-Dragomir    7 年前

    var err = new Errors();
    err.errors = {
        "key": "value"
    };
    

    另一种选择是也定义构造函数,然后可以这样初始化:

    export class Errors {
        constructor(public errors: { [key: string]: string } = {}){};
    }
    
    var err = new Errors({
        "key": "value"
    });
    

    export interface  Errors {
        errors: { [key: string]: string };
    }
    
    var err: Errors = {
        errors: {  "key": "value" }
    };
    

    您选择哪一个取决于您的偏好和用例。我会选择构造函数版本,因为它是最简洁的初始化版本,但也允许您使用 instanceof 操作员,而接口版本没有。

        2
  •  0
  •   gsamaras a Data Head    7 年前

    export class Errors {
        errors: { [key: string]: string } = {};
    }
    

    errors ,但您只能这样做:

    errList: Errors = new Errors();
    errList = {'key':'value'};
    

    errList.errors = {'key', 'value'};