Или перепиши функцию с явными проверками типов:
const sortPosts = (sort: string) => {
setSelectedSort(sort);
setPosts(
[...posts].sort((a, b) => {
const aValue = a[sort as keyof IPost];
const bValue = b[sort as keyof IPost];
if (typeof aValue === 'string' && typeof bValue === 'string') {
return aValue.localeCompare(bValue);
} else if (typeof aValue === 'number' && typeof bValue === 'number') {
return aValue - bValue;
} else return 0;
})
);
};