等价于C++类引用成员变量的typescript


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++那样复制整个对象,只是复制引用。

最新更新