ATRSettings Default Value Issue
why was this an issue again (class constructor error when trying to create while omitting an optional exact property with default)?
(unless you comment out the
export class ATRSettings extends S.Class<ATRSettings>()({}) {}
const Test = S.struct({
id: S.string,
atrSettings: S.optional(ATRSettings, {
exact: true,
default: () =>
new ATRSettings({
period: 10,
multiplier: 2.8
})
})
})
const m = S.decodeSync(Test)({ id: "a" })
export class GetSignalChartFlexibleATRRequest extends S.Class<GetSignalChartFlexibleATRRequest>()({
id: S.string,
atrSettings: S.optional(ATRSettings, {
exact: true,
default: () =>
new ATRSettings({
period: 10,
multiplier: 2.8
})
})
}) {}
const a = new GetSignalChartFlexibleATRRequest({ id: "a" })
^Argument of type '{ id: string; }' is not assignable to parameter of type '{ readonly id: string; readonly atrSettings: ATRSettings; }'.
Property 'atrSettings' is missing in type '{ id: string; }' but required in type '{ readonly id: string; readonly atrSettings: ATRSettings; }'.export class ATRSettings extends S.Class<ATRSettings>()({}) {}
const Test = S.struct({
id: S.string,
atrSettings: S.optional(ATRSettings, {
exact: true,
default: () =>
new ATRSettings({
period: 10,
multiplier: 2.8
})
})
})
const m = S.decodeSync(Test)({ id: "a" })
export class GetSignalChartFlexibleATRRequest extends S.Class<GetSignalChartFlexibleATRRequest>()({
id: S.string,
atrSettings: S.optional(ATRSettings, {
exact: true,
default: () =>
new ATRSettings({
period: 10,
multiplier: 2.8
})
})
}) {}
const a = new GetSignalChartFlexibleATRRequest({ id: "a" })
^Argument of type '{ id: string; }' is not assignable to parameter of type '{ readonly id: string; readonly atrSettings: ATRSettings; }'.
Property 'atrSettings' is missing in type '{ id: string; }' but required in type '{ readonly id: string; readonly atrSettings: ATRSettings; }'.defaultdefault)