Я обычно пользуюсь первым вариантом
* главный плюс - внутри обертки я ничего не знаю и знать не хочу про те пропсы, которые я напрямую не использую
* отсутсвие автокомплита субъективно. Взять тот же квазар - даже если я вытащу и перечислю все три десятка пропсов, которыми обычно обладают их компоненты, я всё равно пойду на сайт с докой, что бы понять как называются нужные мне параметры и что туда передавать. А если дойду до такого, что запомню их - то и автокомплит мне уже будет не особо нужен
* ну и если оборачиваемый компонент обновит свои пропсы, мне придется править на одно место меньше - только там, где компонент используется, но не обертку
Если всё таки хочется заморачиваться со вторым вариантом
* есть варианты вытащить типы пропсов из компонента, что бы не объявлять их вручную ( InstanceType<typeof MyComponent>["$props"]
вроде как должно сработать, но не проверял)
* деструктурировать объект props не нужно - в шаблоне все пропсы и так доступны
* чутка можно уменьшить количество символов за счет v-bind same-name shorthand:
<img :src :alt />