Почему не показывает ошибку типа в возвращаемом объекте функции

Интересует вопрос: почему если не вернуть параметр 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',
});

Ответы (0 шт):