mirror of
https://github.com/swc-project/swc.git
synced 2024-12-22 21:21:31 +03:00
53 lines
966 B
TypeScript
53 lines
966 B
TypeScript
// @useDefineForClassFields: true
|
|
// @target: esnext
|
|
class C {
|
|
qux = this.bar // should error
|
|
bar = this.foo // should error
|
|
quiz = this.bar // ok
|
|
quench = this.m1() // ok
|
|
quanch = this.m3() // should error
|
|
m1() {
|
|
this.foo // ok
|
|
}
|
|
m3 = function() { }
|
|
constructor(public foo: string) {}
|
|
quim = this.baz // should error
|
|
baz = this.foo; // should error
|
|
quid = this.baz // ok
|
|
m2() {
|
|
this.foo // ok
|
|
}
|
|
}
|
|
|
|
class D extends C {
|
|
quill = this.foo // ok
|
|
}
|
|
|
|
class E {
|
|
bar = () => this.foo1 + this.foo2; // both ok
|
|
foo1 = '';
|
|
constructor(public foo2: string) {}
|
|
}
|
|
|
|
class F {
|
|
Inner = class extends F {
|
|
p2 = this.p1
|
|
}
|
|
p1 = 0
|
|
}
|
|
class G {
|
|
Inner = class extends G {
|
|
p2 = this.p1
|
|
}
|
|
constructor(public p1: number) {}
|
|
}
|
|
class H {
|
|
constructor(public p1: C) {}
|
|
|
|
public p2 = () => {
|
|
return this.p1.foo;
|
|
}
|
|
|
|
public p3 = () => this.p1.foo;
|
|
}
|