37 lines
No EOL
1.5 KiB
Text
37 lines
No EOL
1.5 KiB
Text
==== tests/cases/compiler/constraintReferencingTypeParameterFromSameTypeParameterList.ts (6 errors) ====
|
|
// used to be valid, now an error to do this
|
|
|
|
interface IComparable<T> {
|
|
}
|
|
function f<T, I extends IComparable<T>>() {
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
}
|
|
|
|
interface I1<T, U extends I1<T, any>> { // Error, any does not satisfy the constraint I1<T, any>
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
}
|
|
interface I2<T, U extends T> {
|
|
~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
}
|
|
|
|
interface I4<T, U extends () => T> {
|
|
~~~~~~~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
}
|
|
|
|
// No error
|
|
interface I3<T, U extends string> {
|
|
method1<X, Y extends T>();
|
|
}
|
|
|
|
function foo<T, U extends <V extends T>(v: V) => void>() {
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
~~~~~~~~~~~
|
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
}
|
|
|
|
|