Skip to content

Commit 014f7ba

Browse files
committed
Test:javascript signature instantiation w/insufficient type args
1 parent d762f55 commit 014f7ba

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
tests/cases/compiler/BaseB.js(2,24): error TS8004: 'type parameter declarations' can only be used in a .ts file.
2+
tests/cases/compiler/BaseB.js(2,25): error TS1005: ',' expected.
3+
tests/cases/compiler/BaseB.js(3,14): error TS2304: Cannot find name 'Class'.
4+
tests/cases/compiler/BaseB.js(3,14): error TS8010: 'types' can only be used in a .ts file.
5+
tests/cases/compiler/BaseB.js(4,25): error TS2304: Cannot find name 'Class'.
6+
tests/cases/compiler/BaseB.js(4,25): error TS8010: 'types' can only be used in a .ts file.
7+
tests/cases/compiler/SubB.js(3,41): error TS8011: 'type arguments' can only be used in a .ts file.
8+
9+
10+
==== tests/cases/compiler/BaseA.js (0 errors) ====
11+
// regression test for #18254
12+
export default class BaseA {
13+
}
14+
==== tests/cases/compiler/SubA.js (0 errors) ====
15+
import BaseA from './BaseA';
16+
export default class SubA extends BaseA {
17+
}
18+
==== tests/cases/compiler/BaseB.js (6 errors) ====
19+
import BaseA from './BaseA';
20+
export default class B<T: BaseA> {
21+
~~~~~~~~
22+
!!! error TS8004: 'type parameter declarations' can only be used in a .ts file.
23+
~
24+
!!! error TS1005: ',' expected.
25+
_AClass: Class<T>;
26+
~~~~~
27+
!!! error TS2304: Cannot find name 'Class'.
28+
~~~~~~~~
29+
!!! error TS8010: 'types' can only be used in a .ts file.
30+
constructor(AClass: Class<T>) {
31+
~~~~~
32+
!!! error TS2304: Cannot find name 'Class'.
33+
~~~~~~~~
34+
!!! error TS8010: 'types' can only be used in a .ts file.
35+
this._AClass = AClass;
36+
}
37+
}
38+
==== tests/cases/compiler/SubB.js (1 errors) ====
39+
import SubA from './SubA';
40+
import BaseB from './BaseB';
41+
export default class SubB extends BaseB<SubA> {
42+
~~~~
43+
!!! error TS8011: 'type arguments' can only be used in a .ts file.
44+
constructor() {
45+
super(SubA);
46+
}
47+
}
48+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// @allowJs: true
2+
// @checkJs: true
3+
// @noEmit: true
4+
// regression test for #18254
5+
// @Filename: BaseA.js
6+
export default class BaseA {
7+
}
8+
// @Filename: SubA.js
9+
import BaseA from './BaseA';
10+
export default class SubA extends BaseA {
11+
}
12+
// @Filename: BaseB.js
13+
import BaseA from './BaseA';
14+
export default class B<T: BaseA> {
15+
_AClass: Class<T>;
16+
constructor(AClass: Class<T>) {
17+
this._AClass = AClass;
18+
}
19+
}
20+
// @Filename: SubB.js
21+
import SubA from './SubA';
22+
import BaseB from './BaseB';
23+
export default class SubB extends BaseB<SubA> {
24+
constructor() {
25+
super(SubA);
26+
}
27+
}

0 commit comments

Comments
 (0)