Skip to content

Commit 746b7e4

Browse files
author
Andy Hanson
committed
Expose forEachChild as a method of Node
1 parent 17cb68c commit 746b7e4

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/services/services.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ namespace ts {
209209

210210
return child.kind < SyntaxKind.FirstNode ? child : child.getLastToken(sourceFile);
211211
}
212+
213+
public forEachChild<T>(cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T {
214+
return forEachChild(this, cbNode, cbNodeArray);
215+
}
212216
}
213217

214218
class TokenOrIdentifierObject implements Node {
@@ -282,6 +286,10 @@ namespace ts {
282286
public getLastToken(): Node {
283287
return undefined;
284288
}
289+
290+
public forEachChild<T>(): T {
291+
return undefined;
292+
}
285293
}
286294

287295
class SymbolObject implements Symbol {

src/services/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ namespace ts {
1414
getText(sourceFile?: SourceFile): string;
1515
getFirstToken(sourceFile?: SourceFile): Node;
1616
getLastToken(sourceFile?: SourceFile): Node;
17+
// See ts.forEachChild for documentation.
18+
forEachChild<T>(cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T;
1719
}
1820

1921
export interface Symbol {

0 commit comments

Comments
 (0)