Inaktivera visning av det aliasade namnet för en typ i TypeScript
När du skapar en typalias och använder den, till exempel i signaturen för en exporterad metod, visar Intellisense-tipsen du får för den metoden aliaset, inte den verkliga underliggande typen. Finns det ett sätt att avstå från det för en viss typ?
Jag kan se att i vissa/flesta fall är detta vad du vill, men ibland skapades aliaset bara för att den fullständiga typexpressionen var repetitiv eller besvärlig i källfilen, men externt är aliaset ett ogenomskinligt namn som inte hjälper användaren att veta hur man ska uppfylla det.
Svar #1
Typescript använder några heuristiker för att avgöra när man ska bevara typaliaset eller när man ska expandera det. Vi har egentligen inte mycket kontroll över det och heuristikerna kan ändras från version till version baserat på feedback och buggar.
Det sagt kan vi ibland dra nytta av vad kompilatorn gör för att tvinga expansionen av en typalias. Till exempel kommer denna kod att visa den tooltip du vill ha, men kräver att signaturen ändras:
type AnAlias = (a: number) => string;
type FunctionSignature<T extends (...a: any) => any> = {} & ((...a: Parameters<T>) => ReturnType<T>)
declare function fn(a: FunctionSignature<AnAlias>): void
fn()
Lekplatslänk

