* getConstraintDeclaration gets the first declaration with a constraint, rather than just the first declaration * Add type annotation * Update comment
83 lines
2.9 KiB
Plaintext
83 lines
2.9 KiB
Plaintext
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(1,11): error TS2428: All declarations of 'A' must have identical type parameters.
|
|
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(5,11): error TS2428: All declarations of 'A' must have identical type parameters.
|
|
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(10,15): error TS2428: All declarations of 'B' must have identical type parameters.
|
|
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(14,15): error TS2428: All declarations of 'B' must have identical type parameters.
|
|
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(32,22): error TS2428: All declarations of 'A' must have identical type parameters.
|
|
tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts(38,22): error TS2428: All declarations of 'A' must have identical type parameters.
|
|
|
|
|
|
==== tests/cases/conformance/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts (6 errors) ====
|
|
interface A<T extends Date> {
|
|
~
|
|
!!! error TS2428: All declarations of 'A' must have identical type parameters.
|
|
x: T;
|
|
}
|
|
|
|
interface A<T extends Number> { // error
|
|
~
|
|
!!! error TS2428: All declarations of 'A' must have identical type parameters.
|
|
y: T;
|
|
}
|
|
|
|
module M {
|
|
interface B<T extends A<Date>> {
|
|
~
|
|
!!! error TS2428: All declarations of 'B' must have identical type parameters.
|
|
x: T;
|
|
}
|
|
|
|
interface B<T extends A<any>> { // error
|
|
~
|
|
!!! error TS2428: All declarations of 'B' must have identical type parameters.
|
|
y: T;
|
|
}
|
|
}
|
|
|
|
module M2 {
|
|
interface A<T extends Date> {
|
|
x: T;
|
|
}
|
|
}
|
|
|
|
module M2 {
|
|
interface A<T extends Number> { // ok, different declaration space from other M2.A
|
|
y: T;
|
|
}
|
|
}
|
|
|
|
module M3 {
|
|
export interface A<T extends Date> {
|
|
~
|
|
!!! error TS2428: All declarations of 'A' must have identical type parameters.
|
|
x: T;
|
|
}
|
|
}
|
|
|
|
module M3 {
|
|
export interface A<T extends Number> { // error
|
|
~
|
|
!!! error TS2428: All declarations of 'A' must have identical type parameters.
|
|
y: T;
|
|
}
|
|
}
|
|
|
|
interface B<T extends number> {
|
|
u: T;
|
|
v: Constraint<T>; // ok
|
|
}
|
|
|
|
interface B<T> { // ok
|
|
x: T;
|
|
y: Constraint<T>; // ok
|
|
}
|
|
|
|
interface C<T> {
|
|
x: T;
|
|
}
|
|
|
|
interface C<T extends number> { // ok
|
|
y: T;
|
|
}
|
|
|
|
interface Constraint<T extends number> {}
|
|
|