Previously the `node.name` property was only checked to ensure it was defined. But that meant that it was a `ts.BindingName`, which also includes `ts.BindingPattern`, which we do not support. But these helper methods were forcefully casting the value to `ts.Identifier. Now we also check that the `node.name` is actually an `ts.Identifier`. PR Close #38959 PR Close #39272
This commit is contained in:
parent
f752ab9367
commit
02e75df3e7
@ -11,15 +11,19 @@ import {ClassDeclaration} from './host';
|
||||
|
||||
export function isNamedClassDeclaration(node: ts.Node):
|
||||
node is ClassDeclaration<ts.ClassDeclaration> {
|
||||
return ts.isClassDeclaration(node) && (node.name !== undefined);
|
||||
return ts.isClassDeclaration(node) && isIdentifier(node.name);
|
||||
}
|
||||
|
||||
export function isNamedFunctionDeclaration(node: ts.Node):
|
||||
node is ClassDeclaration<ts.FunctionDeclaration> {
|
||||
return ts.isFunctionDeclaration(node) && (node.name !== undefined);
|
||||
return ts.isFunctionDeclaration(node) && isIdentifier(node.name);
|
||||
}
|
||||
|
||||
export function isNamedVariableDeclaration(node: ts.Node):
|
||||
node is ClassDeclaration<ts.VariableDeclaration> {
|
||||
return ts.isVariableDeclaration(node) && (node.name !== undefined);
|
||||
return ts.isVariableDeclaration(node) && isIdentifier(node.name);
|
||||
}
|
||||
|
||||
function isIdentifier(node: ts.Node|undefined): node is ts.Identifier {
|
||||
return node !== undefined && ts.isIdentifier(node);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user