【发布时间】:2018-04-01 12:19:59
【问题描述】:
这个question 的回答有点相似,但是这个问题需要在强制参数类型有一些公共字段的同时使用泛型。
type Document = {
Name: string
Version: string
}
let inline requestData<'t> (document: 't) =
Console.WriteLine(document.Name)
Console.WriteLine(document.Version)
测试
requestData<Document>({Name = "test"; Version="259723983"})
我得到的错误是
根据此程序点之前的信息查找不确定类型的对象。在此程序指向之前可能需要一个类型注释来约束对象的类型。这可能会解决查找问题。
编辑
let inline requestData<'t> (document: 't) =
let name = (^document: (member Name: string)(document))
此处不能使用声明的类型参数
t',因为在编译时无法解析类型参数。
【问题讨论】:
-
requestData应该与您链接的答案中的someComplexFun相同 - 您只需要声明静态解析的成员访问权限,而不是直接调用document.Name
标签: f#