Typescript 如何从对象数据集中的值创建字符串文字类型?

Typescript 如何从对象数据集中的值创建字符串文字类型?,typescript,Typescript,我有一个大数据集,是从远程源获取的数据构建的,看起来是这样的: [ {id:14,名字:'foo'}, {id:2,名称:'bar'}, {id:93,名称:'baz'}, ... ] 我想创建此类型: type Name='foo'|'bar'|'baz'|。。。; (来自当时的对象) 我认为值得注意的是,该对象是从json文件导入的: 从“./data.json”导入数据 我试过了 type Name=typeof数据[编号]['Name'] 但是Typescript认为类型只是st

我有一个大数据集,是从远程源获取的数据构建的,看起来是这样的:

[
{id:14,名字:'foo'},
{id:2,名称:'bar'},
{id:93,名称:'baz'},
...
]
我想创建此类型:

type Name='foo'|'bar'|'baz'|。。。;
(来自当时的对象)

我认为值得注意的是,该对象是从json文件导入的:

从“./data.json”导入数据
我试过了

type Name=typeof数据[编号]['Name']

但是Typescript认为类型只是
string

我不知道您是否能够这样做,因为数据是从
.json
文件加载的,但是如果
data
是一个正则变量,那么您可以使用
作为const
来实现所需的功能

const x = [
  { id: 14, name: 'foo' },
  { id: 2, name: 'bar' },
  { id: 93, name: 'baz' },
] as const // <--- use as const here

type Name = typeof x[number]["name"] // Name is 'foo' | 'bar' | 'baz'
const x=[
{id:14,名字:'foo'},
{id:2,名称:'bar'},
{id:93,名称:'baz'},

]作为const//Yes,我已经知道了这一点,这就是为什么我提到了从json导入的文件,我无法修改它。有解决办法吗?