Как импортировать данные в соответствии с требованиями?

#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. увеличиваемая выразимость