If the base type has a property by that name, add it to the list constructor types to make it as authoritative as special assignments found in the constructor.
21 lines
383 B
TypeScript
21 lines
383 B
TypeScript
// @noEmit: true
|
|
// @allowJs: true
|
|
// @checkJs: true
|
|
// @noImplicitAny: true
|
|
// @strictNullChecks: true
|
|
// @Filename: a.js
|
|
class Base {
|
|
m() {
|
|
this.p = 1
|
|
}
|
|
}
|
|
class Derived extends Base {
|
|
constructor() {
|
|
super();
|
|
// should be OK, and p should have type number from this assignment
|
|
this.p = 1
|
|
}
|
|
test() {
|
|
return this.p
|
|
}
|
|
}
|