我想在打字稿中创建一个接口以接收此值:

{
  "ABANDONED VEH": 4,
  "ADMINISTRATION": 4,
  "ALARM-BUS/RES": 4
}


当我尝试使用自己创建的正确接口时,出现错误:


  类型字符串不能分配给IMapping


我已经尝试过的:

export interface IMapping {
  [key: string]: { value: string };
}

export interface IMapping {
  key: any;
}

[key: string]: string;


PS。这是我的真实代码:

文件interface.ts:

export interface IMapping {
  [key: string]: number;
}


使用此接口的文件:

import { IMapping } from '../interfaces';
const mapping: IMapping =  '{'
  + '"ABANDONED VEH": 4,'
  + '"ADMINISTRATION": 4"}';

最佳答案

您的值是数字,而不是字符串。你应该试试:

export interface IMapping {
  [key: string]: number;
}


您的第二个版本的any类型将无法使用,因为您没有使用方括号-这将期望使用具有名称键的属性,而不是类似字典的对象。

编辑:

编辑后,很明显,您正在尝试分配一个字符串。您应该直接分配对象:

const mapping: IMapping =  {
  "ABANDONED VEH": 4,
  "ADMINISTRATION": 4};

08-28 01:20