@@ -453,7 +453,7 @@ namespace ts {
453
453
type : TypeNode | undefined ,
454
454
name : string | PropertyName ,
455
455
questionToken : QuestionToken | undefined ) {
456
- const node = createSignatureDeclaration ( SyntaxKind . MethodSignature , typeParameters , parameters , type ) as MethodSignature ;
456
+ const node = createSignatureDeclaration ( SyntaxKind . MethodSignature , /*modifiers*/ undefined , typeParameters , parameters , type ) as MethodSignature ;
457
457
node . name = asName ( name ) ;
458
458
node . questionToken = questionToken ;
459
459
return node ;
@@ -651,19 +651,19 @@ namespace ts {
651
651
}
652
652
653
653
export function createCallSignature ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) {
654
- return createSignatureDeclaration ( SyntaxKind . CallSignature , typeParameters , parameters , type ) as CallSignatureDeclaration ;
654
+ return createSignatureDeclaration ( SyntaxKind . CallSignature , /*modifiers*/ undefined , typeParameters , parameters , type ) as CallSignatureDeclaration ;
655
655
}
656
656
657
657
export function updateCallSignature ( node : CallSignatureDeclaration , typeParameters : NodeArray < TypeParameterDeclaration > | undefined , parameters : NodeArray < ParameterDeclaration > , type : TypeNode | undefined ) {
658
- return updateSignatureDeclaration ( node , typeParameters , parameters , type ) ;
658
+ return updateSignatureDeclaration ( node , /*modifiers*/ undefined , typeParameters , parameters , type ) ;
659
659
}
660
660
661
- export function createConstructSignature ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) {
662
- return createSignatureDeclaration ( SyntaxKind . ConstructSignature , typeParameters , parameters , type ) as ConstructSignatureDeclaration ;
661
+ export function createConstructSignature ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructSignatureDeclaration {
662
+ return createSignatureDeclaration ( SyntaxKind . ConstructSignature , /*modifiers*/ undefined , typeParameters , parameters , type ) as ConstructSignatureDeclaration ;
663
663
}
664
664
665
- export function updateConstructSignature ( node : ConstructSignatureDeclaration , typeParameters : NodeArray < TypeParameterDeclaration > | undefined , parameters : NodeArray < ParameterDeclaration > , type : TypeNode | undefined ) {
666
- return updateSignatureDeclaration ( node , typeParameters , parameters , type ) ;
665
+ export function updateConstructSignature ( node : ConstructSignatureDeclaration , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructSignatureDeclaration {
666
+ return updateSignatureDeclaration ( node , /*modifiers*/ undefined , typeParameters , parameters , type ) ;
667
667
}
668
668
669
669
export function createIndexSignature (
@@ -694,20 +694,22 @@ namespace ts {
694
694
}
695
695
696
696
/* @internal */
697
- export function createSignatureDeclaration ( kind : SyntaxKind , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined , typeArguments ?: readonly TypeNode [ ] | undefined ) {
697
+ export function createSignatureDeclaration ( kind : SyntaxKind , modifiers : readonly Modifier [ ] | undefined , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined , typeArguments ?: readonly TypeNode [ ] | undefined ) {
698
698
const node = createSynthesizedNode ( kind ) as SignatureDeclaration ;
699
+ node . modifiers = asNodeArray ( modifiers ) ;
699
700
node . typeParameters = asNodeArray ( typeParameters ) ;
700
701
node . parameters = asNodeArray ( parameters ) ;
701
702
node . type = type ;
702
703
node . typeArguments = asNodeArray ( typeArguments ) ;
703
704
return node ;
704
705
}
705
706
706
- function updateSignatureDeclaration < T extends SignatureDeclaration > ( node : T , typeParameters : NodeArray < TypeParameterDeclaration > | undefined , parameters : NodeArray < ParameterDeclaration > , type : TypeNode | undefined ) : T {
707
- return node . typeParameters !== typeParameters
707
+ function updateSignatureDeclaration < T extends SignatureDeclaration > ( node : T , modifiers : readonly Modifier [ ] | undefined , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : T {
708
+ return node . modifiers !== modifiers
709
+ || node . typeParameters !== typeParameters
708
710
|| node . parameters !== parameters
709
711
|| node . type !== type
710
- ? updateNode ( < T > createSignatureDeclaration ( node . kind , typeParameters , parameters , type ) , node )
712
+ ? updateNode ( < T > createSignatureDeclaration ( node . kind , modifiers , typeParameters , parameters , type ) , node )
711
713
: node ;
712
714
}
713
715
@@ -756,19 +758,50 @@ namespace ts {
756
758
}
757
759
758
760
export function createFunctionTypeNode ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) {
759
- return createSignatureDeclaration ( SyntaxKind . FunctionType , typeParameters , parameters , type ) as FunctionTypeNode ;
761
+ return createSignatureDeclaration ( SyntaxKind . FunctionType , /*modifiers*/ undefined , typeParameters , parameters , type ) as FunctionTypeNode ;
760
762
}
761
763
762
764
export function updateFunctionTypeNode ( node : FunctionTypeNode , typeParameters : NodeArray < TypeParameterDeclaration > | undefined , parameters : NodeArray < ParameterDeclaration > , type : TypeNode | undefined ) {
763
- return updateSignatureDeclaration ( node , typeParameters , parameters , type ) ;
764
- }
765
-
766
- export function createConstructorTypeNode ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) {
767
- return createSignatureDeclaration ( SyntaxKind . ConstructorType , typeParameters , parameters , type ) as ConstructorTypeNode ;
768
- }
769
-
770
- export function updateConstructorTypeNode ( node : ConstructorTypeNode , typeParameters : NodeArray < TypeParameterDeclaration > | undefined , parameters : NodeArray < ParameterDeclaration > , type : TypeNode | undefined ) {
771
- return updateSignatureDeclaration ( node , typeParameters , parameters , type ) ;
765
+ return updateSignatureDeclaration ( node , /*modifiers*/ undefined , typeParameters , parameters , type ) ;
766
+ }
767
+
768
+ export function createConstructorTypeNode ( modifiers : readonly Modifier [ ] | undefined , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructorTypeNode ;
769
+ export function createConstructorTypeNode ( typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructorTypeNode ;
770
+ export function createConstructorTypeNode ( ...args :
771
+ | [ readonly Modifier [ ] | undefined , readonly TypeParameterDeclaration [ ] | undefined , readonly ParameterDeclaration [ ] , TypeNode | undefined ]
772
+ | [ readonly TypeParameterDeclaration [ ] | undefined , readonly ParameterDeclaration [ ] , TypeNode | undefined ]
773
+ ) {
774
+ let modifiers : readonly Modifier [ ] | undefined ;
775
+ let typeParameters : readonly TypeParameterDeclaration [ ] | undefined ;
776
+ let parameters : readonly ParameterDeclaration [ ] ;
777
+ let type : TypeNode | undefined ;
778
+ if ( args . length === 4 ) {
779
+ [ modifiers , typeParameters , parameters , type ] = args ;
780
+ }
781
+ else {
782
+ [ typeParameters , parameters , type ] = args ;
783
+ }
784
+ return createSignatureDeclaration ( SyntaxKind . ConstructorType , modifiers , typeParameters , parameters , type ) as ConstructorTypeNode ;
785
+ }
786
+
787
+ export function updateConstructorTypeNode ( node : ConstructorTypeNode , modifiers : readonly Modifier [ ] | undefined , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructorTypeNode ;
788
+ export function updateConstructorTypeNode ( node : ConstructorTypeNode , typeParameters : readonly TypeParameterDeclaration [ ] | undefined , parameters : readonly ParameterDeclaration [ ] , type : TypeNode | undefined ) : ConstructorTypeNode ;
789
+ export function updateConstructorTypeNode ( node : ConstructorTypeNode , ...args :
790
+ | [ readonly Modifier [ ] | undefined , readonly TypeParameterDeclaration [ ] | undefined , readonly ParameterDeclaration [ ] , TypeNode | undefined ]
791
+ | [ readonly TypeParameterDeclaration [ ] | undefined , readonly ParameterDeclaration [ ] , TypeNode | undefined ]
792
+ ) {
793
+ let modifiers : readonly Modifier [ ] | undefined ;
794
+ let typeParameters : readonly TypeParameterDeclaration [ ] | undefined ;
795
+ let parameters : readonly ParameterDeclaration [ ] ;
796
+ let type : TypeNode | undefined ;
797
+ if ( args . length === 4 ) {
798
+ [ modifiers , typeParameters , parameters , type ] = args ;
799
+ }
800
+ else {
801
+ [ typeParameters , parameters , type ] = args ;
802
+ modifiers = node . modifiers ;
803
+ }
804
+ return updateSignatureDeclaration ( node , modifiers , typeParameters , parameters , type ) ;
772
805
}
773
806
774
807
export function createTypeQueryNode ( exprName : EntityName ) {
0 commit comments