Types 输入别名/缩写可以';你不能访问成员吗?

Types 输入别名/缩写可以';你不能访问成员吗?,types,f#,aliases,Types,F#,Aliases,F#类型别名并没有像我预期的那样工作。e、 g type MyMap = Map<string, string> let myMap = ["One", "1"; "Two", "2"] |> Map.ofList let myMap2= ["One", "1"; "Two", "2"] |> MyMap.ofList type MyMap=Map 让myMap=[“一”、“一”、“二”、“二”]|>Map.of列表 让myMap2=[“一”,“一”,“二”,“二”]

F#类型别名并没有像我预期的那样工作。e、 g

type MyMap = Map<string, string>

let myMap = ["One", "1"; "Two", "2"] |> Map.ofList
let myMap2= ["One", "1"; "Two", "2"] |> MyMap.ofList
type MyMap=Map
让myMap=[“一”、“一”、“二”、“二”]|>Map.of列表
让myMap2=[“一”,“一”,“二”,“二”]|>MyMap.ofList
第一个let很好用。第二个失败的原因是:

错误FS0039:字段、构造函数或成员“of list”不正确 明确的

这让我困惑。我本以为,如果MyMap是Map的别名,那么Map的所有成员都可以通过MyMap访问

有没有什么医生解释过


它说编译器实际上会用实际的底层类型替换缩写。我假设这将包括成员引用。

列表的
Map.ofList
函数位于
Map
模块中,而不是
Map
类型。尝试“module MyMapMod=Map`您应该能够访问列表的
MyMapMod.ofList
(这是一个愚蠢的例子,在这种特殊情况下不会给您带来任何好处,因为
Map
要短得多,但只是出于示例目的)。啊哈!我看到了区别。很高兴知道。谢谢!