Почему не показывает ошибку типа в возвращаемом объекте функции
Интересует вопрос: почему если не вернуть параметр a1 в объекте, то ts будет ругаться
Property 'a1' is missing in type '{ a2: string; }' but required in type 'A'.
Но если вернуть еще параметр a2, то ошибки не возникает, что есть несоответствие типу A?
type A = {
a1: string;
}
type AA = () => A
const aa: AA = () => ({
a1: '1',
a2: '2',
});
В то же время, в другом случае ошибка
Type '{ a1: string; a2: string; }' is not assignable to type 'A'.
будет возвращаться:
type A = {
a1: string;
}
const a: A = {
a1: '1',
a2: '2',
};
Я понимаю, что вопрос можно решить, указав тип A в функции, но мне не понятно, почему так происходит, ведь я определил еще в типе AA какой тип данных должна возвращать функция
const aa: AA = (): A => ({
a1: '1',
a2: '2',
});