将字符串联合类型的值映射为 objec 类型的键

dav*_*lav 1 typescript typescript-typings

给定一个字符串联合类型:

type Fruit = 'apple' | 'banana' | 'pear'
Run Code Online (Sandbox Code Playgroud)

我将如何编写一个类型声明来将上面的内容映射到一个以这些字符串值作为键的对象类型(它们的所有值,比如说,作为字符串)?

如果我手动定义类型,则该类型将如下所示:

type FruitObject = {
  apple:string;
  banana:string;
  pear:string;
}
Run Code Online (Sandbox Code Playgroud)

Tit*_*mir 6

您可以只使用预定义的类型Record

type Fruit = 'apple' | 'banana' | 'pear'

type FruitObject = Record<Fruit, string>
// {
//   apple:string;
//   banana:string;
//   pear:string;
// }


Run Code Online (Sandbox Code Playgroud)

游乐场链接