Test:javascript signature instantiation w/insufficient type args
This commit is contained in:
parent
d762f55199
commit
014f7ba828
|
@ -0,0 +1,48 @@
|
|||
tests/cases/compiler/BaseB.js(2,24): error TS8004: 'type parameter declarations' can only be used in a .ts file.
|
||||
tests/cases/compiler/BaseB.js(2,25): error TS1005: ',' expected.
|
||||
tests/cases/compiler/BaseB.js(3,14): error TS2304: Cannot find name 'Class'.
|
||||
tests/cases/compiler/BaseB.js(3,14): error TS8010: 'types' can only be used in a .ts file.
|
||||
tests/cases/compiler/BaseB.js(4,25): error TS2304: Cannot find name 'Class'.
|
||||
tests/cases/compiler/BaseB.js(4,25): error TS8010: 'types' can only be used in a .ts file.
|
||||
tests/cases/compiler/SubB.js(3,41): error TS8011: 'type arguments' can only be used in a .ts file.
|
||||
|
||||
|
||||
==== tests/cases/compiler/BaseA.js (0 errors) ====
|
||||
// regression test for #18254
|
||||
export default class BaseA {
|
||||
}
|
||||
==== tests/cases/compiler/SubA.js (0 errors) ====
|
||||
import BaseA from './BaseA';
|
||||
export default class SubA extends BaseA {
|
||||
}
|
||||
==== tests/cases/compiler/BaseB.js (6 errors) ====
|
||||
import BaseA from './BaseA';
|
||||
export default class B<T: BaseA> {
|
||||
~~~~~~~~
|
||||
!!! error TS8004: 'type parameter declarations' can only be used in a .ts file.
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
_AClass: Class<T>;
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'Class'.
|
||||
~~~~~~~~
|
||||
!!! error TS8010: 'types' can only be used in a .ts file.
|
||||
constructor(AClass: Class<T>) {
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'Class'.
|
||||
~~~~~~~~
|
||||
!!! error TS8010: 'types' can only be used in a .ts file.
|
||||
this._AClass = AClass;
|
||||
}
|
||||
}
|
||||
==== tests/cases/compiler/SubB.js (1 errors) ====
|
||||
import SubA from './SubA';
|
||||
import BaseB from './BaseB';
|
||||
export default class SubB extends BaseB<SubA> {
|
||||
~~~~
|
||||
!!! error TS8011: 'type arguments' can only be used in a .ts file.
|
||||
constructor() {
|
||||
super(SubA);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
// @allowJs: true
|
||||
// @checkJs: true
|
||||
// @noEmit: true
|
||||
// regression test for #18254
|
||||
// @Filename: BaseA.js
|
||||
export default class BaseA {
|
||||
}
|
||||
// @Filename: SubA.js
|
||||
import BaseA from './BaseA';
|
||||
export default class SubA extends BaseA {
|
||||
}
|
||||
// @Filename: BaseB.js
|
||||
import BaseA from './BaseA';
|
||||
export default class B<T: BaseA> {
|
||||
_AClass: Class<T>;
|
||||
constructor(AClass: Class<T>) {
|
||||
this._AClass = AClass;
|
||||
}
|
||||
}
|
||||
// @Filename: SubB.js
|
||||
import SubA from './SubA';
|
||||
import BaseB from './BaseB';
|
||||
export default class SubB extends BaseB<SubA> {
|
||||
constructor() {
|
||||
super(SubA);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue