diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts old mode 100644 new mode 100755 index d89247b70f9..b342003cb59 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -16381,6 +16381,11 @@ namespace ts { return resolveUntypedCall(node); } + if (callSignatures.length === 1 && callSignatures[0].parameters.length === 0) { + error(node, Diagnostics.A_decorator_function_must_accept_some_number_of_arguments_but_this_expression_takes_none_Did_you_mean_to_call_it_first); + return resolveErrorCall(node); + } + const headMessage = getDiagnosticHeadMessageForDecoratorResolution(node); if (!callSignatures.length) { let errorInfo: DiagnosticMessageChain; diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json old mode 100644 new mode 100755 index bf8fcdc4f84..193c6879b13 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -907,6 +907,10 @@ "category": "Error", "code": 1328 }, + "A decorator function must accept some number of arguments, but this expression takes none. Did you mean to call it first?": { + "category": "Error", + "code": 1329 + }, "Duplicate identifier '{0}'.": { "category": "Error",