Skip to content

Commit f28c518

Browse files
Expose method for retrieving inferred generic type arguments for a signature on the TypeChecker (#59637) (#60201)
1 parent 0e371c4 commit f28c518

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

src/compiler/checker.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1931,8 +1931,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
19311931
isTypeParameterPossiblyReferenced,
19321932
typeHasCallOrConstructSignatures,
19331933
getSymbolFlags,
1934+
getTypeArgumentsForResolvedSignature,
19341935
};
19351936

1937+
function getTypeArgumentsForResolvedSignature(signature: Signature) {
1938+
if (signature.mapper === undefined) return undefined;
1939+
return instantiateTypes((signature.target || signature).typeParameters, signature.mapper);
1940+
}
1941+
19361942
function getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node) {
19371943
const candidatesSet = new Set<Signature>();
19381944
const candidates: Signature[] = [];

src/compiler/types.ts

+2
Original file line numberDiff line numberDiff line change
@@ -5439,6 +5439,8 @@ export interface TypeChecker {
54395439
/** @internal */ typeHasCallOrConstructSignatures(type: Type): boolean;
54405440
/** @internal */ getSymbolFlags(symbol: Symbol): SymbolFlags;
54415441
/** @internal */ fillMissingTypeArguments(typeArguments: readonly Type[], typeParameters: readonly TypeParameter[] | undefined, minTypeArgumentCount: number, isJavaScriptImplicitAny: boolean): Type[];
5442+
5443+
getTypeArgumentsForResolvedSignature(signature: Signature): readonly Type[] | undefined;
54425444
}
54435445

54445446
/** @internal */

tests/baselines/reference/api/typescript.d.ts

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

0 commit comments

Comments
 (0)