Ho visto un elenco di metodi API con entrambe le seguenti firme:
methodA(...) : ReturnType
methodB(...) : typeof ReturnType
Capisco il primo ma non il secondo.
La mia domanda deriva dalla lettura dell'API per Angular2 in cui incontro entrambi i precedenti. Ad esempio, class TestBed
elenca due metodi, initTestEnvironment
e configureTestingModule
, come:
initTestEnvironment(ngModule: Type<any>, platform: PlatformRef) : TestBed
configureTestingModule(moduleDef: TestModuleMetadata) : typeof TestBed
La mia comprensione è che la prima riga indica che quando si chiama questo metodo, il valore restituito sarà un oggetto di tipo TestBed
. Questo ha senso per me.
Tuttavia, non capisco il tipo del valore restituito nella seconda riga. Il valore di ritorno di questo metodo è un oggetto di tipo typeof TestBed
? L'operatore JS typeof
restituisce una stringa, quindi come si può avere un oggetto di tipo "Anything"
invece di Anything
, cioè una stringa rispetto a una classe / interfaccia / ecc.?
Sono interessato principalmente a una spiegazione della sintassi della firma di questo metodo. Tuttavia, apprezzerei molto anche un collegamento a una fonte online (ufficiale?) Che descrive questa stenografia / sintassi.
A proposito, presumo che la sintassi di questa firma del metodo sia specifica di TypeScript, ma per favore correggimi se ho torto.
(Ho provato a cercare su Google questa domanda in vari modi, tra cui tenere d'occhio le discussioni di StackExchange e sono venute a mani vuote. C'è una domanda su StackOverflow che richiede " Qual è il tipo di ritorno di typeof? " che è completamente non correlato. Altre ricerche si disintegrano rapidamente in Google separando "typeof"
in "type of"
che è anche del tutto inutile. )