Support exclamationToken in updateProperty and createProperty (#21577)

This commit is contained in:
Andy
2018-02-02 13:03:18 -08:00
committed by GitHub
parent 79d2772531
commit 567fba251b
3 changed files with 11 additions and 9 deletions

View File

@@ -349,14 +349,15 @@ namespace ts {
decorators: ReadonlyArray<Decorator> | undefined,
modifiers: ReadonlyArray<Modifier> | undefined,
name: string | PropertyName,
questionToken: QuestionToken | undefined,
questionOrExclamationToken: QuestionToken | ExclamationToken | undefined,
type: TypeNode | undefined,
initializer: Expression | undefined) {
const node = <PropertyDeclaration>createSynthesizedNode(SyntaxKind.PropertyDeclaration);
node.decorators = asNodeArray(decorators);
node.modifiers = asNodeArray(modifiers);
node.name = asName(name);
node.questionToken = questionToken;
node.questionToken = questionOrExclamationToken !== undefined && questionOrExclamationToken.kind === SyntaxKind.QuestionToken ? questionOrExclamationToken : undefined;
node.exclamationToken = questionOrExclamationToken !== undefined && questionOrExclamationToken.kind === SyntaxKind.ExclamationToken ? questionOrExclamationToken : undefined;
node.type = type;
node.initializer = initializer;
return node;
@@ -367,16 +368,17 @@ namespace ts {
decorators: ReadonlyArray<Decorator> | undefined,
modifiers: ReadonlyArray<Modifier> | undefined,
name: string | PropertyName,
questionToken: QuestionToken | undefined,
questionOrExclamationToken: QuestionToken | ExclamationToken | undefined,
type: TypeNode | undefined,
initializer: Expression | undefined) {
return node.decorators !== decorators
|| node.modifiers !== modifiers
|| node.name !== name
|| node.questionToken !== questionToken
|| node.questionToken !== (questionOrExclamationToken !== undefined && questionOrExclamationToken.kind === SyntaxKind.QuestionToken ? questionOrExclamationToken : undefined)
|| node.exclamationToken !== (questionOrExclamationToken !== undefined && questionOrExclamationToken.kind === SyntaxKind.ExclamationToken ? questionOrExclamationToken : undefined)
|| node.type !== type
|| node.initializer !== initializer
? updateNode(createProperty(decorators, modifiers, name, questionToken, type, initializer), node)
? updateNode(createProperty(decorators, modifiers, name, questionOrExclamationToken, type, initializer), node)
: node;
}