我不想做的就是这个:
type alias String =
{ prop: String -- here I want a native String
}
这不起作用,因为编译器自然认为它是递归的。我假设某些模块会公开本机类型,但Basics.String
和String.String
都不起作用。
那么,有没有办法让你自己的类型使用与本机类型相同的名称并仍然引用本机类型?
答案 0 :(得分:4)
从可读性的角度来看,我不确定这是一个好主意,但是为了解决它是否可能的问题,如果你在另一个模块中为String
创建一个别名,它将会起作用。 / p>
这样的事情会起作用:
module Alias exposing (..)
type alias ElmString =
String
module Main exposing (..)
import Alias exposing (ElmString)
type alias String =
{ prop: ElmString
}