F# 签名文件(.fsi)是 F# 编程语言中一种专门的源文件,用于定义相应实现文件(.fs)的公共接口。它的作用类似于 C 或 C++ 中的头文件,充当一个契约,规定了哪些类型(types)、函数(functions)和模块(modules)对程序其他部分是可见的。通过使用签名文件,开发人员可以实现更好的封装(encapsulation)和信息隐藏(information hiding),因为他们可以明确声明希望暴露的成员,同时将内部实现细节保持私有。这种接口与实现的隔离也有助于在大型项目中加快编译速度,因为编译器只需重新检查签名文件,就能确定实现文件的更改是否会影响其他模块。签名文件对于创建结构良好的 F# 库和管理需要清晰组件边界的复杂代码库至关重要。它们包含类型、命名空间(namespaces)和模块的声明,但不包含实际的逻辑或代码主体,从而为模块提供的 API 提供了清晰的概览。