TypeScript:从对象推断的类型

TypeScript:从对象推断的类型,typescript,Typescript,是否可以从对象文本自动生成/推断灵活类型 我的目标如下: export const config = { name: 'foo', bar: true, } as const; 我想在此基础上自动生成一个灵活的类型。看起来像: type Config = { name: string; bar: boolean; } 我尝试了type Config=typeof Config,但这给了我一个类型,其中name必须是'foo',等等。所有属性都固定为一个值 我也尝试了以下方法,

是否可以从对象文本自动生成/推断灵活类型

我的目标如下:

export const config = {
  name: 'foo',
  bar: true,
} as const;
我想在此基础上自动生成一个灵活的类型。看起来像:

type Config = {
  name: string;
  bar: boolean;
}
我尝试了
type Config=typeof Config
,但这给了我一个类型,其中
name
必须是
'foo'
,等等。所有属性都固定为一个值

我也尝试了以下方法,但得到了相同的结果

export type Config = {
  [K in keyof typeof config]: typeof config[K];
};

当然,我可以编写一个单独的类型def,但我的实际用例比上面的示例更复杂。

好的,只要从用作模板的对象文本中删除const,我的第二个示例就可以工作。可以将readonly属性添加到插入类型:

export const config = {
  name: 'foo',
  bar: true,
}; // No `as const`

export type Readonly<Config = {
  [K in keyof typeof config]: typeof config[K];
}>; // Make this type read-only
导出常量配置={
名称:“foo”,
酒吧:是的,
}; // 不,作为常数`
导出类型只读;//将此类型设置为只读

只需将
作为常量删除即可