如何在TypeScript接口中表示变量键名?

33
interface Items {
    id: Item,
}

id是必须的,但它可能会有不同的名称。

例如:

let items = {
34433ded : {name: "foo", price: 0.99},
14d433dee : {name: "bar", price: 1.99},
}
2个回答

44

类似于:

interface Item {
    name: string;
    price: string;
}

type Items = { [id: string]: Item }

let items = {
    34433ded : {name: "foo", price: 0.99},
    14d433dee : {name: "bar", price: 1.99},
} as Items;

22

您可以通过以下结构实现此目标:

interface Items {
    [key: string]: Item;
}

这是您的代码片段.
但请记住,根据JSON规范,您的对象键不应以数字开头。如果它们以数字开头,您需要将它们用引号括起来(就像我在代码片段中所做的那样)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接