Я хотел бы указать тип, который по существу отображает строку в другую строку, например, { foo: "bar", baz: "xyz" }
В Typescript я могу сделать это по крайней мере двумя разными способами:
type StringMap = { [key:string]: string }
- с использованием индексированного типа type StringMap = Record<string, string>
- с использованием типа утилиты Record.
Теперь все официальные примеры типа Record по существу имеют тип объединения тип значения, например Record<string, "foo" | "bar">
. У меня вопрос, какой подход является предпочтительным подходом "идиоматический c" в Typescript для определения StringMap?