TypeScript中的C#字典?

mon*_*tro 6 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; }
}
Run Code Online (Sandbox Code Playgroud)

Nit*_*mer 12

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

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

interface FieldModel {
    Id: number;
    Name: string;
    Type: string;
    DataType: string;
    DefaultValue: string;
}
Run Code Online (Sandbox Code Playgroud)

一些差异:

  1. Javascript没有long/integer/double的概念,它们都是数字
  2. 在基于js对象表示法的简单映射实现中,键只是字符串.在打字稿中,这些被称为可索引类型
  3. 当你在类中使用get/set时,接口没有那个,你只能定义属性.