Skip to main content

member_expr

Macro member_expr 

Source
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 to JsWord

§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.name

Chaining 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.bar

Accessing 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