по созданию компонентов обёрток над другими компонентами с сохранением типизации?
Например, есть <Foo> с параметрами foo1...fooN.
Есть <Bar> - обёртка над <Foo>, но с собственным параметрами bar1...barN.
И хочется:
1. Не передавать каждый параметр из Bar в Foo по отдельности
2. Не получить bar* в HTML атрибутах
3. Иметь типизацию Bar
если брать в расчет TS, то мне нравилось поведение в 3.2, на некоторых проектах я даже намеренно не обновляюсь там можно было просто унаследовать чужой интерфейс при объявлении пропсов и в итоге ты получал: 1. типизацию у обертки на уровне TS 2. автоматическое разделение: в пропсах только собственные пропсы обертки, в атрибутах - пропсы другого компонента дальше остается только передать их куда нужно и все условия соблюдены но в 3.3 наследуемый интерфейс теперь тоже учитывается, поэтому тут можно только намеренно вернуть старое поведение, написав какой-нибудь mapped type на TS, чтобы вью не смог вывести типы, но сверху еще придется добавить @vue-ignore, что уже мне не нравится в целом, я сейчас в основном просто разделяю пропсы явно (можно через хелпер, перечисляя ключи, которые нужно откинуть, типа такого: https://docs.solidjs.com/references/api-reference/reactive-utilities/splitProps, либо просто toRefs), если другого удобного варианта нет
Обсуждают сегодня