TypeScript 中的字典类型

hsz*_*hsz 4 typescript typescript-typings

在我的应用程序的一些地方,我声明了一个字典类型,例如:

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

TypeScript 中是否有字典/地图的任何内置速记,以获得类似于:

interface MyInterface {
    data: Dict<Item>;
}
Run Code Online (Sandbox Code Playgroud)

Raj*_*han 6

我们可以尝试使用名为的内置打字稿高级类型 Record<K, T>

interface MyInterface {
    data: Record<string, Item>;
}
Run Code Online (Sandbox Code Playgroud)

把所有东西放在一起

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

interface MyInterface {
    data: Record<string, Item>;
}

const obj: MyInterface = {
    data: {
        "123": { id: "123", name: "something" }
    }
};
Run Code Online (Sandbox Code Playgroud)

  • 由于键始终是“string”:“type Dictionary&lt;T&gt; = Record&lt;string, T&gt;”“Record”比我之前的尝试要好得多,谢谢。 (2认同)