按模块/命名空间引用内置类型

时间:2017-04-17 10:09:56

标签: elm

我不想做的就是这个:

type alias String =
    { prop: String -- here I want a native String
    }

这不起作用,因为编译器自然认为它是递归的。我假设某些模块会公开本机类型,但Basics.StringString.String都不起作用。

那么,有没有办法让你自己的类型使用与本机类型相同的名称并仍然引用本机类型?

1 个答案:

答案 0 :(得分:4)

从可读性的角度来看,我不确定这是一个好主意,但是为了解决它是否可能的问题,如果你在另一个模块中为String创建一个别名,它将会起作用。 / p>

这样的事情会起作用:

Alias.elm

module Alias exposing (..)

type alias ElmString = 
    String

Main.elm

module Main exposing (..)

import Alias exposing (ElmString)

type alias String = 
    { prop: ElmString
    }