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