Since the use of AggregateErrorConstructor was added you need to be using at least es2021 (or more granular, es2021.promise) in the compilerOptions.lib of the tsconfig.json on the consuming project for it to compile.
If the consumer doesn't use the compilerOptions.lib option, TS infers sensible defaults from the compilerOptions.target and I determined es2021 is also the target that is the least required in that scenario.
Note there was another definition added in es2022.error. Not sure which one is relevant, or maybe both are.
This took me some time to understand where this was supposed to be coming from. Probably just a note in the docs about the required support and relevant TS config would suffice.
I think there are other options here but I haven't put too much thought into if they are appropriate. However, they could nuke it entirely from being a consumer concern:
Use /// <reference lib="es2021.promise" /> in types.d.ts. I think this also includes it in the consuming project though.
(typeof globalThis)['AggregateErrorConstructor'] lets you see if it's there and potentially use a conditional type to dynamically not include it if it's not available which may or may not make sense depending on the SES API around this feature.
What is the Problem Being Solved?
Since the use of
AggregateErrorConstructor
was added you need to be using at leastes2021
(or more granular,es2021.promise
) in thecompilerOptions.lib
of thetsconfig.json
on the consuming project for it to compile.If the consumer doesn't use the
compilerOptions.lib
option, TS infers sensible defaults from thecompilerOptions.target
and I determinedes2021
is also the target that is the least required in that scenario.Note there was another definition added in
es2022.error
. Not sure which one is relevant, or maybe both are.This took me some time to understand where this was supposed to be coming from. Probably just a note in the docs about the required support and relevant TS config would suffice.
I think there are other options here but I haven't put too much thought into if they are appropriate. However, they could nuke it entirely from being a consumer concern:
/// <reference lib="es2021.promise" />
intypes.d.ts
. I think this also includes it in the consuming project though.(typeof globalThis)['AggregateErrorConstructor']
lets you see if it's there and potentially use a conditional type to dynamically not include it if it's not available which may or may not make sense depending on the SES API around this feature.Description of the Design
N/A
Security Considerations
N/A
Scaling Considerations
N/A
Test Plan
N/A
Compatibility Considerations
N/A
Upgrade Considerations
N/A