To retrieve the object node from a CallExpression using the TypeScript compiler API, you can use the CallExpression.expression
property. This property gives you access to the expression that is being called, which in turn gives you access to the object node.
For example:
import * as ts from "typescript";
function getObjectNodeFromCallExpression(node: ts.CallExpression): ts.Expression {
if (ts.isPropertyAccessExpression(node.expression)) {
return node.expression.expression;
} else if (ts.isElementAccessExpression(node.expression)) {
return node.expression.expression;
} else {
return node.expression;
}
}
This code takes a CallExpression
node and first checks if the expression being called is a PropertyAccessExpression
or an ElementAccessExpression
. If it is, then it returns the expression
property of the relevant access expression to get the object node that the function is being called on. If it is not, then it simply returns the expression
property of the CallExpression
node itself.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2022-01-21 11:00:00 +0000
Seen: 17 times
Last updated: Apr 28 '21
How can one ensure that sub-classes have uniform method parameters in TypeScript?
Can a TypeScript definition for icon names be provided in MaterialCommunityIcons for React Native?
How can TypeScript be used to save a file in an Excel add-in?
What is the Angular Type script NG Zorro event for radio buttons?
What is the process for implementing a Many to Many relationship using NestJs Sequlize and Mysql2?
What is the method for defining a Fixed length Array in TypeScript?
What difficulties are encountered in the installation of react-router-dom using typescript?