mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-18 03:43:28 -06:00
Test:abstract prop access in non-declaring ctor
This commit is contained in:
parent
5e7bfad2a7
commit
fb45b49afc
@ -34,4 +34,13 @@ tests/cases/compiler/abstractPropertyInConstructor.ts(9,14): error TS2715: Abstr
|
||||
this.prop = this.prop + "!";
|
||||
}
|
||||
}
|
||||
|
||||
class User {
|
||||
constructor(a: AbstractClass) {
|
||||
a.prop;
|
||||
a.cb("hi");
|
||||
a.method(12);
|
||||
a.method2();
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,6 +23,15 @@ abstract class AbstractClass {
|
||||
this.prop = this.prop + "!";
|
||||
}
|
||||
}
|
||||
|
||||
class User {
|
||||
constructor(a: AbstractClass) {
|
||||
a.prop;
|
||||
a.cb("hi");
|
||||
a.method(12);
|
||||
a.method2();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [abstractPropertyInConstructor.js]
|
||||
@ -44,3 +53,12 @@ var AbstractClass = /** @class */ (function () {
|
||||
};
|
||||
return AbstractClass;
|
||||
}());
|
||||
var User = /** @class */ (function () {
|
||||
function User(a) {
|
||||
a.prop;
|
||||
a.cb("hi");
|
||||
a.method(12);
|
||||
a.method2();
|
||||
}
|
||||
return User;
|
||||
}());
|
||||
|
||||
@ -68,3 +68,32 @@ abstract class AbstractClass {
|
||||
}
|
||||
}
|
||||
|
||||
class User {
|
||||
>User : Symbol(User, Decl(abstractPropertyInConstructor.ts, 23, 1))
|
||||
|
||||
constructor(a: AbstractClass) {
|
||||
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
|
||||
>AbstractClass : Symbol(AbstractClass, Decl(abstractPropertyInConstructor.ts, 0, 0))
|
||||
|
||||
a.prop;
|
||||
>a.prop : Symbol(AbstractClass.prop, Decl(abstractPropertyInConstructor.ts, 13, 5))
|
||||
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
|
||||
>prop : Symbol(AbstractClass.prop, Decl(abstractPropertyInConstructor.ts, 13, 5))
|
||||
|
||||
a.cb("hi");
|
||||
>a.cb : Symbol(AbstractClass.cb, Decl(abstractPropertyInConstructor.ts, 15, 26))
|
||||
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
|
||||
>cb : Symbol(AbstractClass.cb, Decl(abstractPropertyInConstructor.ts, 15, 26))
|
||||
|
||||
a.method(12);
|
||||
>a.method : Symbol(AbstractClass.method, Decl(abstractPropertyInConstructor.ts, 16, 37))
|
||||
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
|
||||
>method : Symbol(AbstractClass.method, Decl(abstractPropertyInConstructor.ts, 16, 37))
|
||||
|
||||
a.method2();
|
||||
>a.method2 : Symbol(AbstractClass.method2, Decl(abstractPropertyInConstructor.ts, 18, 39))
|
||||
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
|
||||
>method2 : Symbol(AbstractClass.method2, Decl(abstractPropertyInConstructor.ts, 18, 39))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -79,3 +79,37 @@ abstract class AbstractClass {
|
||||
}
|
||||
}
|
||||
|
||||
class User {
|
||||
>User : User
|
||||
|
||||
constructor(a: AbstractClass) {
|
||||
>a : AbstractClass
|
||||
>AbstractClass : AbstractClass
|
||||
|
||||
a.prop;
|
||||
>a.prop : string
|
||||
>a : AbstractClass
|
||||
>prop : string
|
||||
|
||||
a.cb("hi");
|
||||
>a.cb("hi") : void
|
||||
>a.cb : (s: string) => void
|
||||
>a : AbstractClass
|
||||
>cb : (s: string) => void
|
||||
>"hi" : "hi"
|
||||
|
||||
a.method(12);
|
||||
>a.method(12) : void
|
||||
>a.method : (num: number) => void
|
||||
>a : AbstractClass
|
||||
>method : (num: number) => void
|
||||
>12 : 12
|
||||
|
||||
a.method2();
|
||||
>a.method2() : void
|
||||
>a.method2 : () => void
|
||||
>a : AbstractClass
|
||||
>method2 : () => void
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -22,3 +22,12 @@ abstract class AbstractClass {
|
||||
this.prop = this.prop + "!";
|
||||
}
|
||||
}
|
||||
|
||||
class User {
|
||||
constructor(a: AbstractClass) {
|
||||
a.prop;
|
||||
a.cb("hi");
|
||||
a.method(12);
|
||||
a.method2();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user