**The set of properties and methods available on an object. **
The term “interface” has a lot of meanings. From a modeling and software perspective, the term refers to a set of properties and methods available on an object. Many languages (such as Java or TypeScript ) have dedicated syntax for declaring interfaces and semantics for using them.
Example from my PDW :
/**
* The `DataStore` interface is what you must implement when creating code to
* hook up a new database. It is what sits between the data store of choice and the PDW.
* It's designed to be as simple-to-implement as possible.
*
* The parameter sanitization & merge logic are handled by the PDW.
*
* It's *very much* a work in progress.
*/
export interface DataStore {
getDefs ( params : SanitizedParams ) : DefLike [];
getEntries ( params : SanitizedParams ) : EntryLike [];
getTags ( params : SanitizedParams ) : TagLike [];
setDefs ( defs : Def []) : Def [];
setEntries ( entries : Entry []) : Entry [];
setTags ( tagData : Tag []) : TagLike [];
query ( params : QueryParams ) : QueryResponse ;
getOverview () : DataStoreOverview ;
connect ? ( ... params : any ) : boolean ;
/**
* The name of the connector, essentially. Examples: "Excel", "Firestore"
*/
serviceName : string ;
/**
* A reference to the Personal Data Warehouse instance to
* which the storage connector is connected.
*/
pdw : PDW ;
}
Source §
Mostly myself, but also I liked this:
What is the definition of “interface” in object oriented programming