typescript - Hvorfor bruker Angular statisk klasse i stedet for eksportert funksjon i kildekoden deres?


Jeg lurte på hvorfor de i Angular (2+) Framework-kilden bruker statisk klasse for funksjoner som Validators? Se et eksempel her: https://github.com/angular/angular/blob/9.1.0/packages/forms/src/validators.ts

Jeg antar at målet med dette var å ha et Validators-navnerom hvor alle valideringsmetodene er samlet? Men da vil dette hindre koden i å være Tree shakeable hvis jeg ikke tar feil? (Forresten, kan dette endre seg med Ivy?)

Så hvorfor bestemte de seg for å bruke dette mønsteret? Når jeg lager min egen Valideringsfunksjon, bør jeg også holde meg til dette statiske klassemønsteret av noen grunn, eller kan jeg bare bruke eksportmetoder (som kan tree-shakes) så lenge jeg ikke trenger noen klassefunksjon?