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

SMH*_*SMH 6 interface typescript

interface Items {
    id: Item,
}
Run Code Online (Sandbox Code Playgroud)

id不是可选的,但它将具有不同的名称

例如:

let items = {
34433ded : {name: "foo", price: 0.99},
14d433dee : {name: "bar", price: 1.99},
}
Run Code Online (Sandbox Code Playgroud)

Nit*_*mer 12

就像是:

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;
Run Code Online (Sandbox Code Playgroud)


小智 6

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

interface Items {
    [key: string]: Item;
}
Run Code Online (Sandbox Code Playgroud)

这是你的小提琴.
但是请记住,由于JSON规范,你的对象键不应该以数字开头,或者如果它们这样做 - 你必须用引号括起来(就像我在小提琴中所做的那样)