First of all, this issue is not related to the common issue about slice.items arrays starting with an empty item inside instead of zero length, since that is not happening in repeatable links.
I've found an empty repeatable link returning a non-empty array, but it's only in one place. I think some item was there before, but after remove that link, the link item persisted with "type: Any" and a key, but it should be deleted.
@prismicio/client includes a helper to check if a repeatable field (like your repeatable link field) is empty: isFilled.repeatable(). You'll still need to check if each item in the repeatable field is filled, as there are times where some fields are filled and others are not.
This is how I recommend checking if a repeatable field is filled and if an individual item is filled (assuming Next.js and a slice named "Example"):
The code renders a <section>, only renders a <ul> if the repeatable link field has at least one item (whether or not those items are filled), and only renders an individual link with <li> if the link is filled.