assign_stmt

Macro assign_stmt 

Source
macro_rules! assign_stmt {
    ($lhs:expr, $rhs:expr) => { ... };
}
Expand description

Creates an assignment expression statement (lhs = rhs;).

This macro generates a statement that assigns a value to a target. The left-hand side must be an AssignTarget (typically a variable, property access, or destructuring pattern), and the right-hand side is any expression.

§Arguments

  • $lhs - The assignment target (left-hand side)
  • $rhs - The expression to assign (right-hand side)

§Examples

Simple variable assignment:

use macroforge_ts_syn::{assign_stmt, ident};
use swc_core::ecma::ast::{AssignTarget, SimpleAssignTarget, Expr, Lit, Number};
use swc_core::common::DUMMY_SP;

let target = AssignTarget::Simple(SimpleAssignTarget::Ident(ident!("x").into()));
let value = Expr::Lit(Lit::Num(Number { span: DUMMY_SP, value: 42.0, raw: None }));

let stmt = assign_stmt!(target, value);
// Generates: x = 42;

Property assignment:

use macroforge_ts_syn::{assign_stmt, member_expr, ident};
use swc_core::ecma::ast::{AssignTarget, SimpleAssignTarget, Expr, Lit, ThisExpr};
use swc_core::common::DUMMY_SP;

let this_name = member_expr!(Expr::This(ThisExpr { span: DUMMY_SP }), "name");
let target = /* convert to AssignTarget */;
let value = Expr::Lit(Lit::Str("John".into()));

let stmt = assign_stmt!(target, value);
// Generates: this.name = "John";