如何导入合格的数据?

How to import data as qualified?

我有以下声明:

data Route
  = Home
  | SignUp
  | LogIn
  | NotFound

我知道我可以像 import App.Routes (Route(..)) 一样导入它并像 route.navigate Home 一样使用它。

但是如何以合格的访问权限使用它才合适?

import App.Routes (Route)
-- ...
 route.navigate Route.Home

抛出:Unknown module Route

要导入合格的模块,请使用as关键字:

import App.Routes as Route

如果您想进一步限制可通过点访问的内容集,您也可以添加括号:

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(..))

这将使您在几个月后更容易理解您的程序,当您完全忘记它时。