#purescript
Вопрос:
У меня есть следующее заявление:
data Route = Home | SignUp | LogIn | NotFound
Я знаю, что могу импортировать его как import App.Routes (Route(..))
и использовать route.navigate Home
, например, как.
Но как правильно использовать его с квалифицированным доступом?
import App.Routes (Route) -- ... route.navigate Route.Home
бросает: Unknown module Route
Ответ №1:
Чтобы импортировать квалифицированный модуль, используйте as
ключевое слово:
import App.Routes as Route
Если вы хотите еще больше ограничить набор материалов, доступных через dot, вы также можете добавить парены:
import App.Routes (Route(..)) as Route
Кроме того, таким образом вы можете импортировать несколько модулей, и все они будут доступны с одним и тем же классификатором:
import App.Routes (Route(..)) as Route import App.Navigation (navigate) as Route ... Route.navigate Route.Home
Но в этом случае вам лучше сохранить парены при обоих импортах, иначе компилятор выдаст вам предупреждение о потенциальных конфликтах имен.
Отдельно, даже если вы не являетесь квалифицированным импортером, я настоятельно рекомендую по-прежнему явно перечислять все импортируемые товары:
import App.Routes (Route(..))
Это значительно облегчит понимание вашей программы через несколько месяцев, когда вы о ней совсем забудете.
Комментарии:
1. увеличиваемая выразимость