Merge pull request #10543 from Microsoft/port10212

Port #10212
This commit is contained in:
Mohamed Hegazy 2016-08-25 21:01:10 -07:00 committed by GitHub
commit c72f5e28e8
3 changed files with 7 additions and 5 deletions

View File

@ -1132,8 +1132,10 @@ namespace ts {
// it if it's not a well known symbol. In that case, the text of the name will be exactly
// what we want, namely the name expression enclosed in brackets.
writeTextOfNode(currentText, node.name);
// If optional property emit ?
if ((node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature || node.kind === SyntaxKind.Parameter) && hasQuestionToken(node)) {
// If optional property emit ? but in the case of parameterProperty declaration with "?" indicating optional parameter for the constructor
// we don't want to emit property declaration with "?"
if ((node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature ||
(node.kind === SyntaxKind.Parameter && !isParameterPropertyDeclaration(node))) && hasQuestionToken(node)) {
write("?");
}
if ((node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature) && node.parent.kind === SyntaxKind.TypeLiteral) {

View File

@ -247,7 +247,7 @@ export declare class ConstructorWithPrivateParameterProperty {
constructor(x: string);
}
export declare class ConstructorWithOptionalParameterProperty {
x?: string;
x: string;
constructor(x?: string);
}
export declare class ConstructorWithParameterInitializer {
@ -281,7 +281,7 @@ declare class GlobalConstructorWithPrivateParameterProperty {
constructor(x: string);
}
declare class GlobalConstructorWithOptionalParameterProperty {
x?: string;
x: string;
constructor(x?: string);
}
declare class GlobalConstructorWithParameterInitializer {

View File

@ -126,7 +126,7 @@ interface Foo {
}
declare function test1(x: Foo): void;
declare class Bar {
d?: number;
d: number;
e: number;
a: number;
b?: number;