Skip to content

On DT, lambda-tester is broken by better alias preservation #51698

Description

lambda-tester is broken by #51152.

Conditional type instantiation seems to proceed differently for an alias when it was constructed without type parameters that are later defaulted:

typeActual=lambdaTester.Verifier<lambdaTester.HandlerResult<Handler>>typeExpected=lambdaTester.Verifier<lambdaTester.HandlerResult<Handler<any,any>>>// from lambda-tester's index.d.ts:typeHandlerResult<TextendsHandler>=TextendsHandler<any, infer TResult> ? TResult : never;typeVerifier<S>=SextendsHandlerError<Handler>
? (Sextendsstring ? VerifierFn<string>
: SextendsError ? VerifierFn<Error>
: never)
: VerifierFn<S>;classLambdaTester<TextendsHandler>{// ....expectSucceed(verifier: Verifier<HandlerResult<T>>): Promise<any>;// ....}// from aws-lambda's index.d.ts:exporttypeHandler<TEvent=any,TResult=any>=(event: TEvent,context: Context,callback: Callback<TResult>,)=>void|Promise<TResult>;

Actual and Expected are both VerifierFn<string> | VerifierFn<Error> | VerifierFn<any> before #51152. Afterwards, Actual is VerifierFn<unknown>.

Metadata

Metadata

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issueRecent RegressionThis is a new regression just found in the last major/minor version of TypeScript.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions