Expose method for retrieving inferred generic type arguments for a signature on the TypeChecker (#59637) (#60201)

This commit is contained in:
Tristan Menzel 2025-01-23 16:43:59 -08:00 committed by GitHub
parent 0e371c4bf5
commit f28c5180df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 0 deletions

View File

@ -1931,8 +1931,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
isTypeParameterPossiblyReferenced,
typeHasCallOrConstructSignatures,
getSymbolFlags,
getTypeArgumentsForResolvedSignature,
};
function getTypeArgumentsForResolvedSignature(signature: Signature) {
if (signature.mapper === undefined) return undefined;
return instantiateTypes((signature.target || signature).typeParameters, signature.mapper);
}
function getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node) {
const candidatesSet = new Set<Signature>();
const candidates: Signature[] = [];

View File

@ -5439,6 +5439,8 @@ export interface TypeChecker {
/** @internal */ typeHasCallOrConstructSignatures(type: Type): boolean;
/** @internal */ getSymbolFlags(symbol: Symbol): SymbolFlags;
/** @internal */ fillMissingTypeArguments(typeArguments: readonly Type[], typeParameters: readonly TypeParameter[] | undefined, minTypeArgumentCount: number, isJavaScriptImplicitAny: boolean): Type[];
getTypeArgumentsForResolvedSignature(signature: Signature): readonly Type[] | undefined;
}
/** @internal */

View File

@ -6348,6 +6348,7 @@ declare namespace ts {
* and the operation is cancelled, then it should be discarded, otherwise it is safe to keep.
*/
runWithCancellationToken<T>(token: CancellationToken, cb: (checker: TypeChecker) => T): T;
getTypeArgumentsForResolvedSignature(signature: Signature): readonly Type[] | undefined;
}
enum NodeBuilderFlags {
None = 0,