17 lines
300 B
JavaScript
17 lines
300 B
JavaScript
|
class A {
|
||
|
n: number;
|
||
|
constructor(n: number) {
|
||
|
this.n = n;
|
||
|
}
|
||
|
clone(): A {
|
||
|
return new this.constructor(this.n);
|
||
|
}
|
||
|
badClone(): number {
|
||
|
return new this.constructor(this.n); // Error A ~> number
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var a1 = new A(1);
|
||
|
var a2: A = new a1.constructor(2);
|
||
|
var a3: A = a2.clone();
|