66 addRange,
77 addRelatedInfo,
88 addSyntheticLeadingComment,
9+ addSyntheticTrailingComment,
910 AliasDeclarationNode,
1011 AllAccessorDeclarations,
1112 AmbientModuleDeclaration,
@@ -7054,6 +7055,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
70547055
70557056 function createTypeNodesFromResolvedType(resolvedType: ResolvedType): TypeElement[] | undefined {
70567057 if (checkTruncationLength(context)) {
7058+ if (context.flags & NodeBuilderFlags.NoTruncation) {
7059+ return [addSyntheticTrailingComment(factory.createNotEmittedTypeElement(), SyntaxKind.MultiLineCommentTrivia, "elided")];
7060+ }
70577061 return [factory.createPropertySignature(/*modifiers*/ undefined, "...", /*questionToken*/ undefined, /*type*/ undefined)];
70587062 }
70597063 const typeElements: TypeElement[] = [];
@@ -7085,7 +7089,13 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
70857089 }
70867090 }
70877091 if (checkTruncationLength(context) && (i + 2 < properties.length - 1)) {
7088- typeElements.push(factory.createPropertySignature(/*modifiers*/ undefined, `... ${properties.length - i} more ...`, /*questionToken*/ undefined, /*type*/ undefined));
7092+ if (context.flags & NodeBuilderFlags.NoTruncation) {
7093+ const typeElement = typeElements.pop()!;
7094+ typeElements.push(addSyntheticTrailingComment(typeElement, SyntaxKind.MultiLineCommentTrivia, `... ${properties.length - i} more elided ...`));
7095+ }
7096+ else {
7097+ typeElements.push(factory.createPropertySignature(/*modifiers*/ undefined, `... ${properties.length - i} more ...`, /*questionToken*/ undefined, /*type*/ undefined));
7098+ }
70897099 addPropertyToElementList(properties[properties.length - 1], context, typeElements);
70907100 break;
70917101 }
@@ -7100,7 +7110,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
71007110 if (!(context.flags & NodeBuilderFlags.NoTruncation)) {
71017111 return factory.createTypeReferenceNode(factory.createIdentifier("..."), /*typeArguments*/ undefined);
71027112 }
7103- return factory.createKeywordTypeNode(SyntaxKind.AnyKeyword);
7113+ return addSyntheticLeadingComment( factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, "elided" );
71047114 }
71057115
71067116 function shouldUsePlaceholderForProperty(propertySymbol: Symbol, context: NodeBuilderContext) {
@@ -7260,12 +7270,18 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
72607270 if (some(types)) {
72617271 if (checkTruncationLength(context)) {
72627272 if (!isBareList) {
7263- return [factory.createTypeReferenceNode("...", /*typeArguments*/ undefined)];
7273+ return [
7274+ context.flags & NodeBuilderFlags.NoTruncation
7275+ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, "elided")
7276+ : factory.createTypeReferenceNode("...", /*typeArguments*/ undefined),
7277+ ];
72647278 }
72657279 else if (types.length > 2) {
72667280 return [
72677281 typeToTypeNodeHelper(types[0], context),
7268- factory.createTypeReferenceNode(`... ${types.length - 2} more ...`, /*typeArguments*/ undefined),
7282+ context.flags & NodeBuilderFlags.NoTruncation
7283+ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, `... ${types.length - 2} more elided ...`)
7284+ : factory.createTypeReferenceNode(`... ${types.length - 2} more ...`, /*typeArguments*/ undefined),
72697285 typeToTypeNodeHelper(types[types.length - 1], context),
72707286 ];
72717287 }
@@ -7278,7 +7294,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
72787294 for (const type of types) {
72797295 i++;
72807296 if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
7281- result.push(factory.createTypeReferenceNode(`... ${types.length - i} more ...`, /*typeArguments*/ undefined));
7297+ result.push(
7298+ context.flags & NodeBuilderFlags.NoTruncation
7299+ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, `... ${types.length - i} more elided ...`)
7300+ : factory.createTypeReferenceNode(`... ${types.length - i} more ...`, /*typeArguments*/ undefined),
7301+ );
72827302 const typeNode = typeToTypeNodeHelper(types[types.length - 1], context);
72837303 if (typeNode) {
72847304 result.push(typeNode);
0 commit comments