Почему этот код не работает?

const a = [{ name: 'a', label: 'b' }, { name: 'c', label: 'd' }] as const;
const b = [{ name: 'e', label: 'f' }, { name: 'g', label: 'h' }] as const;
type IArr = typeof a | typeof b;

const fn = (arr: IArr) => arr.filter(el => el.name === 'a');

Typescript предупреждает, когда я пытаюсь отфильтровать или отобразить этот массив: «имеет подписи, но ни одна из этих подписей не совместима друг с другом»

(arr: IArr) => arr.filter(el => {});

Но он отлично работает, когда я выкладываю этот массив

(arr: IArr) => [...arr].filter(el => {});
0
Artem Bochkarev