всегда можно было, и даже экспортировать их
мне помню ошибку выдавало и я писал интерфейсы в <script>, а использовал в <script setup>
вероятно, либо у тебя вебшторм, либо тулзы обновлены не до последней версии, потому что эта фича уже довольно давно существует
возможно) но щас обновился на 3.3 и такого нет
Не до конца, у меня есть такой кейс, что интерфейс находится в определенном файле и когда я его использую в компоненте: defineProps<ImportedInterface>() появлялся error, но если бы я дал допустим defineProps<{key: ImportedInterface}>() то все робит...
там где-то выше обсуждалось, что достаточно создать новый интерфейс и унаследоваться от импортированного, и тогда все заработает
Ух ты, не знал, спасибо, попробую))
с >= 3.3 это уже не нужно, он поддерживает напрямую некоторые простые импортированные типы
> некоторые простые импортированные типы Но с какими-то есть проблемы?
А как ты это делал в 3.2?
а в двойке он просто не проверяет этот тип, поэтому по факту у компонента нет пропсов, зато TS прекрасно подсказывает все атрибуты а вот в 3.3 он пытается распарсить этот тип и сваливается из-за того, что там есть вот такое
вот даже ишью есть: https://github.com/vuejs/core/issues/8286 можно, конечно, добавить комментарий, но выглядит слишком колхозно, как по мне
А не знаешь, есть где-то полный список этих "сложных типов", которые не поддерживаются?
думаю, что наиболее близкое к полному списку можно взять из тестов: https://github.com/vuejs/core/blob/82350721a408e1f552c613c05971439d6c218d87/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts#L16 насколько я понимаю, они просто затащили к себе компилятор TS и пытаются сами распарсить все эти импортируемые типы, поэтому работает только то, что они, собственно, предусмотрели в своем парсере а всякие сложные типы с ремаппингом в такой реализации будет трудно/невозможно реализовать
Ощущается, что всё пошло куда-то как-то не туда и не так
именно так я и подумал, когда понял, что они сделали)
Обсуждают сегодня