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导入的文件,我无法修改它。有解决办法吗?