30 lines
No EOL
1.5 KiB
Text
30 lines
No EOL
1.5 KiB
Text
tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts(4,22): error TS2312: An interface may only extend a class or another interface.
|
|
tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts(5,21): error TS2422: A class may only implement another class or interface.
|
|
tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts(10,6): error TS2300: Duplicate identifier 'T2'.
|
|
tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts(11,6): error TS2300: Duplicate identifier 'T2'.
|
|
|
|
|
|
==== tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts (4 errors) ====
|
|
type T1 = { x: string }
|
|
|
|
// An interface can be named in an extends or implements clause, but a type alias for an object type literal cannot.
|
|
interface I1 extends T1 { y: string }
|
|
~~
|
|
!!! error TS2312: An interface may only extend a class or another interface.
|
|
class C1 implements T1 {
|
|
~~
|
|
!!! error TS2422: A class may only implement another class or interface.
|
|
x: string;
|
|
}
|
|
|
|
// An interface can have multiple merged declarations, but a type alias for an object type literal cannot.
|
|
type T2 = { x: string }
|
|
~~
|
|
!!! error TS2300: Duplicate identifier 'T2'.
|
|
type T2 = { y: number }
|
|
~~
|
|
!!! error TS2300: Duplicate identifier 'T2'.
|
|
|
|
// An interface can have type parameters, but a type alias for an object type literal cannot.
|
|
type T3<T> = { x: T }
|
|
|