Привет) На днях столкнулся с интересным поведением Typescript. Я явно дал знать, какой интерфейс должен использовать аргумент функции. Тем не менее, если передать в качестве аргумента значение, которое будет использовать интерфейс с дополнительными полями, ошибки не будет. Почему?
interface IValidUser {
name: string
}
interface IInvalidUser {
name: string,
age: number
}
const validUser: IValidUser = {name: 'Pavel'}
const invalidUser: IInvalidUser = {name: 'Nadya', age: 45}
const printUser = (user: IValidUser): void => {
console.log(user)
}
printUser(validUser)
printUser(invalidUser)