macro_rules! member_expr {
($obj:expr, $prop:expr) => { ... };
}Expand description
Creates a member access expression (obj.prop).
This macro generates a MemberExpr representing
property access in JavaScript/TypeScript, such as obj.property or this.field.
§Arguments
$obj- The object expression to access the property on$prop- The property name as a string or something convertible toJsWord
§Examples
Accessing a property:
ⓘ
use macroforge_ts_syn::{member_expr, ts_ident};
use swc_core::ecma::ast::{Expr, ThisExpr};
use swc_core::common::DUMMY_SP;
let this_expr = Expr::This(ThisExpr { span: DUMMY_SP });
let access = member_expr!(this_expr, "name");
// Generates: this.nameChaining member access:
use macroforge_ts_syn::{member_expr, ts_ident};
use macroforge_ts_syn::swc_ecma_ast::Expr;
let obj = Expr::Ident(ts_ident!("obj"));
let _nested = member_expr!(member_expr!(obj, "foo"), "bar");
// Generates: obj.foo.barAccessing prototype:
use macroforge_ts_syn::{member_expr, ts_ident};
use macroforge_ts_syn::swc_ecma_ast::Expr;
let class = Expr::Ident(ts_ident!("MyClass"));
let _proto = member_expr!(class, "prototype");
// Generates: MyClass.prototype