interface House { bedrooms: number, bathrooms: number } interface Mansion { bedrooms: number, bathrooms : number, butlers: number } function getProperty() : ( Mansion | House) { return { bedrooms: 10, bathrooms: 10, butlers: 10 } // ... } const property = getProperty(); const bedroomCount = property.butlers; //error |
1 answer
If several interfaces are implemented for 1 function, then in all interfaces the fields to which we access should be described after executing the function.
interface House { bedrooms: number, bathrooms: number, butlers?: undefined } interface Mansion { bedrooms: number, bathrooms: number, butlers: number } function getProperty(): (Mansion | House) { return { bedrooms: 10, bathrooms: 10, butlers: 10 } } const property = getProperty(); const bedroomCount = property.butlers; |
butlers?: numberin the interface. - Dmitry Miroshnichenko