I am trying to extend an object with some added properties but I cannot for the life of me understand why this doesn't work.
export function foo() {
const record = fetchDynamoRecord() // record: { foo: "bar" } & dynamoose.Item
return record
}
export function bar() {
const record = fetchDynamoRecord() // record: { foo: "bar" } & dynamoose.Item
return {
...record,
someFn: () => "hello, world!"
}
}
const A = foo() // correct type inference { foo: "bar" } & dynamoose.Item
const B = bar() // incorrect type inference. { foo: "bar" } & Partial<dynamoose.Item> missing *some* properties of dynamoose.Item