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”,
酒吧:是的,
}; // 不,作为常数`
导出类型只读;//将此类型设置为只读
只需将作为常量删除即可
。