Should this documentation be done through an interface or just as function or property on the time-dependent class?
Nessuno dei due.
La dipendenza dal tempo è importante solo in un contesto dei test. Non documenti il tuo codice per i test ; scrivi test per documentare il tuo codice.
Al di fuori del contesto di test, il fatto che il codice dipenda dall'ora corrente non è particolarmente interessante, nel qual caso non è necessaria alcuna documentazione specifica o importa, nel qual caso la quantità e il contenuto della documentazione saranno strongmente dipendente dal caso aziendale reale. Potrebbe essere semplice come un nome di un metodo:
const getUsageForToday = function () {
...
};
o complicato come un commento dettagliato che spiega che un metodo specifico si comporta in modo un po 'diverso quando viene chiamato dal Regno Unito durante l'ora legale dopo mezzanotte quando si utilizza un server ospitato a New York e configurato a GMT-5.
If so, what noun would be appropriate as an interface name to document the fact that the class is time based?
Tutto dipende dal contesto aziendale. Di nuovo, se ha senso enfatizzare l'importanza del tempo, allora (relativamente) troverai facilmente come nominarlo. In caso contrario, non preoccuparti di introdurre un dettaglio che gli sviluppatori che utilizzano il tuo codice non dovranno conoscere.