=== tests/cases/compiler/commentsCommentParsing.ts === /// This is simple /// comments function simple() { >simple : () => void } simple(); >simple() : void >simple : () => void /// multiLine /// Comments /// This is example of multiline /// comments /// Another multiLine function multiLine() { >multiLine : () => void } multiLine(); >multiLine() : void >multiLine : () => void /** this is eg of single line jsdoc style comment */ function jsDocSingleLine() { >jsDocSingleLine : () => void } jsDocSingleLine(); >jsDocSingleLine() : void >jsDocSingleLine : () => void /** this is multiple line jsdoc stule comment *New line1 *New Line2*/ function jsDocMultiLine() { >jsDocMultiLine : () => void } jsDocMultiLine(); >jsDocMultiLine() : void >jsDocMultiLine : () => void /** this is multiple line jsdoc stule comment *New line1 *New Line2*/ /** Shoul mege this line as well * and this too*/ /** Another this one too*/ function jsDocMultiLineMerge() { >jsDocMultiLineMerge : () => void } jsDocMultiLineMerge(); >jsDocMultiLineMerge() : void >jsDocMultiLineMerge : () => void /// Triple slash comment /** jsdoc comment */ function jsDocMixedComments1() { >jsDocMixedComments1 : () => void } jsDocMixedComments1(); >jsDocMixedComments1() : void >jsDocMixedComments1 : () => void /// Triple slash comment /** jsdoc comment */ /*** another jsDocComment*/ function jsDocMixedComments2() { >jsDocMixedComments2 : () => void } jsDocMixedComments2(); >jsDocMixedComments2() : void >jsDocMixedComments2 : () => void /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment function jsDocMixedComments3() { >jsDocMixedComments3 : () => void } jsDocMixedComments3(); >jsDocMixedComments3() : void >jsDocMixedComments3 : () => void /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment /// Triple slash comment 2 function jsDocMixedComments4() { >jsDocMixedComments4 : () => void } jsDocMixedComments4(); >jsDocMixedComments4() : void >jsDocMixedComments4 : () => void /// Triple slash comment 1 /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment /// Triple slash comment 2 function jsDocMixedComments5() { >jsDocMixedComments5 : () => void } jsDocMixedComments5(); >jsDocMixedComments5() : void >jsDocMixedComments5 : () => void /*** another jsDocComment*/ /// Triple slash comment 1 /// Triple slash comment /// Triple slash comment 2 /** jsdoc comment */ function jsDocMixedComments6() { >jsDocMixedComments6 : () => void } jsDocMixedComments6(); >jsDocMixedComments6() : void >jsDocMixedComments6 : () => void // This shoulnot be help comment function noHelpComment1() { >noHelpComment1 : () => void } noHelpComment1(); >noHelpComment1() : void >noHelpComment1 : () => void /* This shoulnot be help comment */ function noHelpComment2() { >noHelpComment2 : () => void } noHelpComment2(); >noHelpComment2() : void >noHelpComment2 : () => void function noHelpComment3() { >noHelpComment3 : () => void } noHelpComment3(); >noHelpComment3() : void >noHelpComment3 : () => void /** Adds two integers and returns the result * @param {number} a first number * @param b second number */ function sum(a: number, b: number) { >sum : (a: number, b: number) => number >a : number >b : number return a + b; >a + b : number >a : number >b : number } sum(10, 20); >sum(10, 20) : number >sum : (a: number, b: number) => number >10 : number >20 : number /** This is multiplication function*/ /** @param */ /** @param a first number*/ /** @param b */ /** @param c { @param d @anotherTag*/ /** @param e LastParam @anotherTag*/ function multiply(a: number, b: number, c?: number, d?, e?) { >multiply : (a: number, b: number, c?: number, d?: any, e?: any) => void >a : number >b : number >c : number >d : any >e : any } /** fn f1 with number * @param { string} b about b */ function f1(a: number); >f1 : { (a: number): any; (b: string): any; } >a : number function f1(b: string); >f1 : { (a: number): any; (b: string): any; } >b : string /**@param opt optional parameter*/ function f1(aOrb, opt?) { >f1 : { (a: number): any; (b: string): any; } >aOrb : any >opt : any return aOrb; >aOrb : any } /** This is subtract function @param { a *@param { number | } b this is about b @param { { () => string; } } c this is optional param c @param { { () => string; } d this is optional param d @param { { () => string; } } e this is optional param e @param { { { () => string; } } f this is optional param f */ function subtract(a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) { >subtract : (a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) => void >a : number >b : number >c : () => string >d : () => string >e : () => string >f : () => string } /** this is square function @paramTag { number } a this is input number of paramTag @param { number } a this is input number @returnType { number } it is return type */ function square(a: number) { >square : (a: number) => number >a : number return a * a; >a * a : number >a : number >a : number } /** this is divide function @param { number} a this is a @paramTag { number } g this is optional param g @param { number} b this is b */ function divide(a: number, b: number) { >divide : (a: number, b: number) => void >a : number >b : number } /** this is jsdoc style function with param tag as well as inline parameter help *@param a it is first parameter *@param c it is third parameter */ function jsDocParamTest(/** this is inline comment for a */a: number, /** this is inline comment for b*/ b: number, c: number, d: number) { >jsDocParamTest : (a: number, b: number, c: number, d: number) => number >a : number >b : number >c : number >d : number return a + b + c + d; >a + b + c + d : number >a + b + c : number >a + b : number >a : number >b : number >c : number >d : number } /**/ class NoQuickInfoClass { >NoQuickInfoClass : NoQuickInfoClass }