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";