我有一个包含一些默认配置的对象。它的一些值不能静态定义,需要在运行时计算。要将这些默认值应用于对象,我将应用任何静态值,并执行和应用任何函数的返回。
const SETTINGS = {
prop1: true,
prop2: (config: Config): boolean => config.prop2,
prop3: (config: Config): number => config.prop2,
prop4: 0,
} as DefaultSettings
为这个对象编写一个接口很困难。任何给定的属性都可以是静态值或返回值的函数。我希望接口能够表示这种类型的多个对象,其中属性名称和属性类型相同,但任何属性都可以是值或函数。
interface DefaultSettings {
prop1: boolean
prop2: boolean
prop3: number
prop4: number
}
上面的接口假设所有的属性都是静态值,这是不正确的。
如何键入可能是也可能不是函数的值?