mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Fix name resolution in typedef and allow defaults for template tags (#45483)
* Fix name resolution in typedef and allow defaults for template tags * Inline parseBracketNameInTemplateTag * Update baselines * Add js declaration emit tests
This commit is contained in:
+14
-1
@@ -8441,11 +8441,24 @@ namespace ts {
|
||||
|
||||
function parseTemplateTagTypeParameter() {
|
||||
const typeParameterPos = getNodePos();
|
||||
const isBracketed = parseOptionalJsdoc(SyntaxKind.OpenBracketToken);
|
||||
if (isBracketed) {
|
||||
skipWhitespace();
|
||||
}
|
||||
const name = parseJSDocIdentifierName(Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);
|
||||
|
||||
let defaultType: TypeNode | undefined;
|
||||
if (isBracketed) {
|
||||
skipWhitespace();
|
||||
parseExpected(SyntaxKind.EqualsToken);
|
||||
defaultType = doInsideOfContext(NodeFlags.JSDoc, parseJSDocType);
|
||||
parseExpected(SyntaxKind.CloseBracketToken);
|
||||
}
|
||||
|
||||
if (nodeIsMissing(name)) {
|
||||
return undefined;
|
||||
}
|
||||
return finishNode(factory.createTypeParameterDeclaration(name, /*constraint*/ undefined, /*defaultType*/ undefined), typeParameterPos);
|
||||
return finishNode(factory.createTypeParameterDeclaration(name, /*constraint*/ undefined, defaultType), typeParameterPos);
|
||||
}
|
||||
|
||||
function parseTemplateTagTypeParameters() {
|
||||
|
||||
Reference in New Issue
Block a user