【问题标题】:Using aliases when importing from other modules in elm从 elm 中的其他模块导入时使用别名
【发布时间】:2017-12-06 15:56:36
【问题描述】:

我想知道是否有办法从模块中导入某些内容并立即重命名。

假设"my-module" 导出myFunctionsomethingElse,我可以在JavaScript 文件中执行以下操作:

import { myFunction as myRenamedFunction, somethingElse } from "my-module";

这是我想要在 Elm 中做的事情,但这会产生语法错误:

import MyModule exposing (myFunction as myRenamedFunction, somethingElse)

【问题讨论】:

    标签: import elm


    【解决方案1】:

    不,从 Elm 0.18 开始,没有用于重命名导入的语法。最接近的方法是声明这样的函数:

    import MyModule exposing (somethingElse)
    
    myRenamedFunction = MyModule.myFunction
    

    【讨论】:

    • 感谢您的快速答复乍得!您认为这背后是否有特定的设计决策?如果没有,也许我可以在 elm 编译器 repo 中打开一个问题并要求支持as
    • Elm 语言设计者在添加语法方面倾向于保守。过去的几个版本已经剥离了其他有用的语法,他们认为这是对新手的障碍。这感觉就像他们认为是多余的事情之一,所以我怀疑他们会考虑太多,但尝试永远不会有坏处!
    • 我实际上在问题中发现了类似的功能请求:github.com/elm-lang/elm-compiler/issues/1450。为其添加了评论。再次感谢您的回答!
    • Elm 的官方指南“建议[s] 很少使用exposing。理想情况下,您的导入为零或之一。”因此,没有这一点是一种设计选择,可以让事情保持简单和明确。 guide.elm-lang.org/webapps/modules.html
    猜你喜欢
    • 2017-10-05
    • 2019-11-19
    • 2018-11-20
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多