TypeScript 4.4 breaking changes
TypeScript has several breaking changes in the 4.4 release. One of these changes, namely, using unknown type for catch variables in the --strict mode might result in strange error messages such as:
src/ApplicationError.spec.ts:22:16 - error TS2571: Object is of type 'unknown'.
22         expect(error.message).toStrictEqual(errorDetail);
                  ~~~~~
src/ApplicationError.spec.ts:23:16 - error TS2571: Object is of type 'unknown'.
23         expect(error.name).toStrictEqual(ApplicationError.name);
                  ~~~~~
You can find the explanation in the list of breaking changes for the release. This is a minor release. And this is why compilation errors like this might come as a surprise.
I would recommend adding a check for error variable type to fix the issue. For example:
...
    } catch (error) {
        // Check common Error properties:
        if (!(error instanceof Error)) {
            fail("Error should be thrown.");
        }
        expect(error.message).toStrictEqual(errorDetail);
        expect(error.name).toStrictEqual(ApplicationError.name);
...Another option would be to add an explicit any annotation. For example:
...
    } catch (error: any) {
        expect(error.message).toStrictEqual(errorDetail);
        expect(error.name).toStrictEqual(ApplicationError.name);
...