diff --git a/source/lib/compiler.ts b/source/lib/compiler.ts index 02a9537..0535bcf 100644 --- a/source/lib/compiler.ts +++ b/source/lib/compiler.ts @@ -57,6 +57,7 @@ const expectErrorDiagnosticCodesToIgnore = new Set([ DiagnosticCode.RuntimeWillInvokeDecoratorWithXArgumentsButDecoratorExpectsAtLeastY, DiagnosticCode.AcceptsTooFewArgumentsToBeUsedAsDecoratorHere, DiagnosticCode.PropertyDoesNotExistOnTypeDidYouMean, + DiagnosticCode.ErrorIsOfTypeUnknown, ]); type IgnoreDiagnosticResult = 'preserve' | 'ignore' | Location; diff --git a/source/lib/interfaces.ts b/source/lib/interfaces.ts index 46b2207..0feb021 100644 --- a/source/lib/interfaces.ts +++ b/source/lib/interfaces.ts @@ -66,6 +66,7 @@ export enum DiagnosticCode { MemberCannotHaveOverrideModifierBecauseItIsNotDeclaredInBaseClass = 4113, MemberMustHaveOverrideModifier = 4114, NewExpressionTargetLackingConstructSignatureHasAnyType = 7009, + ErrorIsOfTypeUnknown = 18046, } export interface Diagnostic { diff --git a/source/test/fixtures/expect-error/values/index.test-d.ts b/source/test/fixtures/expect-error/values/index.test-d.ts index 16a94c6..7b1f5b0 100644 --- a/source/test/fixtures/expect-error/values/index.test-d.ts +++ b/source/test/fixtures/expect-error/values/index.test-d.ts @@ -13,7 +13,9 @@ try { expectError(foo.bar = 'quux'); expectError(foo.quux); } -} catch {} +} catch (error) { + expectError(error.code); +} expectError(hasProperty({name: 1})); diff --git a/source/test/fixtures/expect-error/values/package.json b/source/test/fixtures/expect-error/values/package.json index de6dc1d..52316ed 100644 --- a/source/test/fixtures/expect-error/values/package.json +++ b/source/test/fixtures/expect-error/values/package.json @@ -1,3 +1,8 @@ { - "name": "foo" + "name": "foo", + "tsd": { + "compilerOptions": { + "useUnknownInCatchVariables": true + } + } }