TypeScript/tests/cases/fourslash/codeFixClassImplementInterfaceComments.ts
Andy d2dc2e6d48
Don't copy trivia when implementing an interface (#23343)
* Don't copy trivia when implementing an interface

* Use an `includeTrivia` flag instead of a separate function
2018-04-12 11:47:42 -07:00

46 lines
2.2 KiB
TypeScript

/// <reference path='fourslash.ts' />
// @lib: es2017
////namespace N {
//// /**enum prefix */
//// export enum /**enum identifier prefix */ E /**open-brace prefix*/ {
//// /* literal prefix */ a /** comma prefix */,
//// /* literal prefix */ b /** comma prefix */,
//// /* literal prefix */ c
//// /** close brace prefix */ }
//// /** interface prefix */
//// export interface /**interface name prefix */ I /**open-brace prefix*/ {
//// /** property prefix */ a /** colon prefix */: /** enum literal prefix 1*/ E /** dot prefix */. /** enum literal prefix 2*/a;
//// /** property prefix */ b /** colon prefix */: /** enum prefix */ E;
//// /**method signature prefix */foo /**open angle prefix */< /**type parameter name prefix */ X /** closing angle prefix */> /**open paren prefix */(/** parameter prefix */ a/** colon prefix */: /** parameter type prefix */ X /** close paren prefix */) /** colon prefix */: /** return type prefix */ string /** semicolon prefix */;
//// /**close-brace prefix*/ }
/////**close-brace prefix*/ }
////class C implements N.I {}
verify.codeFix({
description: "Implement interface 'N.I'",
newFileContent:
`namespace N {
/**enum prefix */
export enum /**enum identifier prefix */ E /**open-brace prefix*/ {
/* literal prefix */ a /** comma prefix */,
/* literal prefix */ b /** comma prefix */,
/* literal prefix */ c
/** close brace prefix */ }
/** interface prefix */
export interface /**interface name prefix */ I /**open-brace prefix*/ {
/** property prefix */ a /** colon prefix */: /** enum literal prefix 1*/ E /** dot prefix */. /** enum literal prefix 2*/a;
/** property prefix */ b /** colon prefix */: /** enum prefix */ E;
/**method signature prefix */foo /**open angle prefix */< /**type parameter name prefix */ X /** closing angle prefix */> /**open paren prefix */(/** parameter prefix */ a/** colon prefix */: /** parameter type prefix */ X /** close paren prefix */) /** colon prefix */: /** return type prefix */ string /** semicolon prefix */;
/**close-brace prefix*/ }
/**close-brace prefix*/ }
class C implements N.I {
a: N.E.a;
b: N.E;
foo<X>(a: X): string {
throw new Error("Method not implemented.");
}
}`,
});