Eine F#-Signaturdatei (.fsi) ist eine spezialisierte Quelldatei, die in der Programmiersprache F# verwendet wird, um die öffentliche Schnittstelle einer entsprechenden Implementierungsdatei (.fs) zu definieren. Sie erfüllt einen ähnlichen Zweck wie Header-Dateien in C oder C++ und fungiert als Vertrag, der festlegt, welche Typen, Funktionen und Module für andere Teile eines Programms sichtbar sind. Durch die Verwendung einer Signaturdatei können Entwickler eine bessere Kapselung und Informationsverbergung erreichen, da sie explizit nur die Mitglieder deklarieren können, die sie freigeben möchten, während interne Implementierungsdetails privat bleiben. Diese Trennung von Schnittstelle und Implementierung kann bei großen Projekten zudem zu schnelleren Kompilierungszeiten führen, da der Compiler nur die Signaturdatei erneut prüfen muss, um festzustellen, ob sich Änderungen in der Implementierungsdatei auf andere Module auswirken. Signaturdateien sind unerlässlich für die Erstellung gut strukturierter F#-Bibliotheken und die Verwaltung komplexer Codebasen, bei denen klare Grenzen zwischen Komponenten erforderlich sind. Sie enthalten Deklarationen von Typen, Namespaces und Modulen ohne die eigentliche Logik oder Code-Rümpfe und bieten so einen übersichtlichen Einblick in die API, die vom Modul bereitgestellt wird.