TypeScript中的C#字典?

时间:2016-08-08 15:24:58

标签: dictionary typescript

我应该如何实现TypeScript接口来定义这个C#模型:

public class PageModel
{
    public long Id { get; set; }
    public string Name { get; set; }
    public IDictionary<string, FieldModel> Fields { get; set; }
}

public class FieldModel
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    public string DataType { get; set; }
    public string DefaultValue { get; set; }
}

1 个答案:

答案 0 :(得分:12)

如果您只是在寻找接口,那么:

interface PageModel {
    Id: number;
    Name: string;
    Fields: { [key: string]: FieldModel };
}

interface FieldModel {
    Id: number;
    Name: string;
    Type: string;
    DataType: string;
    DefaultValue: string;
}

一些差异:

  1. Javascript没有long / integer / double的概念,它们都是数字
  2. 在基于js对象表示法的简单地图实现中,键只是字符串。在打字稿中,这些被称为Indexable Types
  3. 当您在课程中使用get / set时,界面不具备此功能,您只能定义属性。