从现有文字中提取界面

时间:2017-06-30 19:25:12

标签: typescript

假设我有一个对象文字如下:

const defaultSettings = {
  height: 100,
  width: 100,
  color: 'red'
}

有没有办法轻松获取该对象的接口,而不必手动声明这样的接口?

interface Settings {
  height: number,
  width: number,
  color: string
}

1 个答案:

答案 0 :(得分:1)

在较新版本的TypeScript中,您可以使用接口扩展类型别名。因此,您可以通过执行以下操作来获取界面:

const defaultSettings = {
    height: 100,
    width: 100,
    color: 'red'
};

type SettingsTypeAlias = typeof defaultSettings;

interface Settings extends SettingsTypeAlias {
}

但我认为没有必要。你也可以这样做:

type Settings = typeof defaultSettings;