Closed
Description
TypeScript Version: 3.9.2 (doesn't work in any version I tested, including 4)
Search Terms:
higher order function return value object excess property check
Code
interface Foo {
foo: {
bar: number
}
}
// Error for unknown property buz
const getFoo = (): Foo => ({
foo: {
bar: 1,
buz: 2,
}
})
// Typeing should be the same. Autocomplete works, but no error is shown for the excessive property buz
const getFoo3 = (): () => Foo => () => ({
foo: {
bar: 1,
buz: 2
}
})
// Same problem as above. The issue doesn't seem to be directly related to higher order functions
const getFoo2: () => Foo = () => ({
foo: {
bar: 1,
buz: 2,
}
})
Expected behavior:
Error should be thrown for the excess property in all cases.
Actual behavior:
Error for excess properties is only thrown, when the return value of the function is directly typed.
Related Issues: -