Mam funkcja, która buduje obiekt, na przykład:Export typ zwracany funkcji w maszynopisie
function toast() {
return {
a: "a",
b: "b"
}
}
mogę określić rodzaj funkcji jak
type ToastFunctionType = typeof toast
Ten typ byłoby
() => { a: string; b: string; }
Jednak chcę tylko typ wartości zwracanej. Czy można wyodrębnić typ zwracanej wartości tostów? W moim przypadku użycia, rzeczywiste wartości obiektów używają dość szczegółowych ogólnych argumentów typu. Wnioskowanie typów czyni je odpowiednimi i chciałbym uniknąć zachowania bardzo szczegółowego interfejsu (który muszę wyeksportować).
Co chcę w przypadku tosty tylko
{ a: string; b: string; }
Neat sztuczki! Sam bym tego nie wymyślił. Wygląda nieco hackish, ale korzysta z naszej aplikacji, usuwając długie deklaracje z 2 liniami. Szkoda, że nie można użyć wyrażenia po typeof (coś podobnego do typeof (ExtractReturnType (toast)), które byłoby bardziej czytelne niż deklaracja zmiennej, po której następuje typeof. – user3711864
To nie zadziała, jeśli 'strictNullChecks' jest włączony, wystąpi błąd przy 'return null'. – Louis
@Louis naprawiony, dziękuję. Jest to jeden z nielicznych przypadków, kiedy musisz użyć operatora asercji nie-null z' null'. – artem