相当于 C++ class 引用成员变量的打字稿

typescript equivalent of C++ class reference member variable

class B;
class A {
    A(B b_) : b{b_} {}
    B &b;
};

C++可以有引用成员变量b。

我可以用打字稿做这个吗?

或者有什么利基的方法可以实现这个目标吗?

JavaScript(因此 TypeScript)没有像 C 或 C++ 这样的引用机制。您按值传递值,而对象按引用传递。但是你不能像在 C 或 C++ 中那样修改底层引用:

// This does not work in JavaScript
let x = 27;
let y = &x;
*y = 28;
assert(x === 28);

但是你可以这样做。

class B {
   public foo: string;
}
class A {
   public constructor(public b: B) {}
}

const b = new B();
b.foo = 'bar';
const a = new A(b);
b.foo = 'foobar';
assert(a.b.foo === 'foobar');

请注意,这不会像 C++ 那样复制整个对象,只复制引用。