我想在打字稿中创建一个接口以接收此值:
{
"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};