这是允许的:
type Test = class end
[<CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
module Test = begin end
但这不是:
[<CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
module Test = begin end
type Test = class end
为什么?
在第二种情况下,错误是:类型或模块的重复定义&#39;测试&#39;。
我希望能够定义一些类型所需的公共[<Literal>]
常量,并且对于具有相同名称的模块内的类型用户来说很重要。
答案 0 :(得分:13)
您可以打开类型声明,关闭它并稍后重新打开,如下所示:
type Test = class end
[<CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
module Test =
[<Literal>]
let myLiteral = "myLiteral"
type Test with
static member test = ()
我一直使用这个技巧;)