0e905be42b
* Switch index signature storage to 'indexInfos: IndexInfo[]' property * Accept new baselines * Remove another usage of IndexKind enum * Update getIndexedAccessType and resolveMappedTypeMembers * Accept new baselines * Update grammar checking for index signatures * Accept new baselines * Consider all index signatures in mapped types and union types * Accept new baselines * Update getIndexType * Accept new baselines * Intersect multiple applicable index signatures * Use getApplicableIndexInfo instead of hardwired string/number handling * Update index signature relationship checking * Report type for which index signature is missing * Report type for which index signature is missing * Accept new baselines * Make 'number' index signatures consistently apply to numeric strings * Accept new baselines * Update fourslash test * Revise index constraint checking * Accept new baselines * Update error messages * Accept new baselines * Update type inference from index signatures * Update isKnownProperty * Update contextual typing based on index signatures * Accept new baselines * Support union types in index signature declarations * Accept new baselines * Check duplicate index signatures / remove redundant template literals from unions with string * Accept new baselines * Include key type in diagnostic / check symbol-named properties * Accept new baselines * Minor fix * Add tests * Accept new baselines * Add optimized findApplicableIndexInfoForName * Accept new baselines * Another place we don't need to obtain literal type for property name * Accept new baselines * Don't create literal types that are going to be discarded * Individual maps for string, number, bigint, and enum literal types * Remove ineffective optimizations * Accept new baselines * Permit intersections as key types in index signatures * Index expression in element access is template literal context * Add tests * Accept new baselines * Symbol index signatures from object literals with computed symbol properties * Accept new baselines * Add more tests * Accept new baselines * Implement Go To Definition for all applicable index signatures * Add fourslash test * Accept new API baselines
112 lines
7.3 KiB
Plaintext
112 lines
7.3 KiB
Plaintext
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(8,8): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(10,13): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(11,14): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(11,18): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(12,11): error TS1268: An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(12,14): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(12,18): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(14,13): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(14,28): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(16,15): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(16,19): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(16,30): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(18,23): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(18,27): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(18,38): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(20,17): error TS2689: Cannot extend an interface 'I'. Did you mean 'implements'?
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(23,21): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(29,18): error TS2708: Cannot use namespace 'M' as a value.
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(30,24): error TS2314: Generic type 'E<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(31,24): error TS2694: Namespace 'M' has no exported member 'C'.
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(33,22): error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(34,22): error TS2314: Generic type 'E<T>' requires 1 type argument(s).
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(36,10): error TS2304: Cannot find name 'C'.
|
|
tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts(37,10): error TS2314: Generic type 'E<T>' requires 1 type argument(s).
|
|
|
|
|
|
==== tests/cases/conformance/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts (24 errors) ====
|
|
// it is an error to use a generic type without type arguments
|
|
// all of these are errors
|
|
|
|
interface I<T> {
|
|
foo: T;
|
|
}
|
|
|
|
var c: I;
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
var a: { x: I };
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
var b: { (x: I): I };
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
var d: { [x: I]: I };
|
|
~
|
|
!!! error TS1268: An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
var e = (x: I) => { var y: I; return y; }
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
function f(x: I): I { var y: I; return y; }
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
var g = function f(x: I): I { var y: I; return y; }
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
class D extends I {
|
|
~
|
|
!!! error TS2689: Cannot extend an interface 'I'. Did you mean 'implements'?
|
|
}
|
|
|
|
interface U extends I {}
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
|
|
module M {
|
|
export interface E<T> { foo: T }
|
|
}
|
|
|
|
class D2 extends M.C { }
|
|
~
|
|
!!! error TS2708: Cannot use namespace 'M' as a value.
|
|
interface D3<T extends M.E> { }
|
|
~~~
|
|
!!! error TS2314: Generic type 'E<T>' requires 1 type argument(s).
|
|
interface I2 extends M.C { }
|
|
~
|
|
!!! error TS2694: Namespace 'M' has no exported member 'C'.
|
|
|
|
function h<T extends I>(x: T) { }
|
|
~
|
|
!!! error TS2314: Generic type 'I<T>' requires 1 type argument(s).
|
|
function i<T extends M.E>(x: T) { }
|
|
~~~
|
|
!!! error TS2314: Generic type 'E<T>' requires 1 type argument(s).
|
|
|
|
var j = <C>null;
|
|
~
|
|
!!! error TS2304: Cannot find name 'C'.
|
|
var k = <M.E>null;
|
|
~~~
|
|
!!! error TS2314: Generic type 'E<T>' requires 1 type argument(s). |