mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 11:54:44 -06:00
Accepted baselines.
This commit is contained in:
parent
dc0e368f82
commit
8891fba149
@ -14,69 +14,29 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
|
||||
Type 'string' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(48,30): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'string' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(54,20): error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(54,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,20): error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(56,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(56,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,20): error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(61,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(62,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(63,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(64,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(65,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(68,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(69,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(70,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(71,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(72,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(75,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(76,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(77,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(78,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(79,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(86,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(86,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,34): error TS1134: Variable declaration expected.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(90,20): error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(90,20): error TS2447: The '|' operator is not allowed for boolean types. Consider using '||' instead.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(93,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(94,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(95,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(96,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(97,26): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(100,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(101,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(102,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(103,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(104,25): error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(107,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(108,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(109,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(110,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'boolean' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(111,30): error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
Type 'number' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,34): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,34): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(61,5): error TS2322: Type 'string' is not assignable to type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(63,5): error TS2322: Type 'string' is not assignable to type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(75,5): error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
|
||||
Type '"World"' is not assignable to type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(77,5): error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
|
||||
Type '"World"' is not assignable to type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(93,5): error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
|
||||
Type 'string' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(97,5): error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
|
||||
Type 'string' is not assignable to type '"World"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(100,25): error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
|
||||
Type '"World"' is not assignable to type '"Hello"'.
|
||||
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(104,25): error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
|
||||
Type '"World"' is not assignable to type '"Hello"'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts (61 errors) ====
|
||||
==== tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts (25 errors) ====
|
||||
|
||||
declare function randBool(): boolean;
|
||||
declare function takeReturnString(str: string): string;
|
||||
@ -158,86 +118,47 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
|
||||
// The following (regardless of errors) should come back typed
|
||||
// as "Hello" (or "Hello" | "Hello").
|
||||
export let a = fun1<"Hello">("Hello", "Hello");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
export let b = fun1<"Hello">("Hello", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
export let c = fun2<"Hello", "Hello">("Hello", "Hello");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
export let d = fun2<"Hello", "Hello">("Hello", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
export let e = fun3<"Hello">("Hello", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
|
||||
// Assignment from the returned value should cause an error.
|
||||
a = takeReturnString(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"Hello"'.
|
||||
b = takeReturnString(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
c = takeReturnString(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"Hello"'.
|
||||
d = takeReturnString(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
e = takeReturnString(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
|
||||
// Should be valid
|
||||
a = takeReturnHello(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
b = takeReturnHello(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
c = takeReturnHello(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
d = takeReturnHello(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
e = takeReturnHello(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
|
||||
// Assignment from the returned value should cause an error.
|
||||
a = takeReturnHelloWorld(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
~
|
||||
!!! error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
|
||||
!!! error TS2322: Type '"World"' is not assignable to type '"Hello"'.
|
||||
b = takeReturnHelloWorld(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
c = takeReturnHelloWorld(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
~
|
||||
!!! error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
|
||||
!!! error TS2322: Type '"World"' is not assignable to type '"Hello"'.
|
||||
d = takeReturnHelloWorld(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
e = takeReturnHelloWorld(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
}
|
||||
|
||||
|
||||
@ -245,84 +166,47 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
|
||||
// The following (regardless of errors) should come back typed
|
||||
// as "Hello" | "World" (or "World" | "Hello").
|
||||
export let a = fun2<"Hello", "World">("Hello", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
export let b = fun2<"Hello", "World">("World", "Hello");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
|
||||
export let c = fun2<"World", "Hello">("Hello", "Hello");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
|
||||
export let d = fun2<"World", "Hello">("World", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
|
||||
~~~~~~~
|
||||
!!! error TS1134: Variable declaration expected.
|
||||
~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
|
||||
export let e = fun3<"Hello" | "World">("Hello", "World");
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2447: The '|' operator is not allowed for boolean types. Consider using '||' instead.
|
||||
|
||||
// Assignment from the returned value should cause an error.
|
||||
a = takeReturnString(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"World"'.
|
||||
b = takeReturnString(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
c = takeReturnString(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
d = takeReturnString(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
|
||||
e = takeReturnString(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type '"World"'.
|
||||
|
||||
// Passing these as arguments should cause an error.
|
||||
a = takeReturnHello(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
!!! error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
|
||||
!!! error TS2345: Type '"World"' is not assignable to type '"Hello"'.
|
||||
b = takeReturnHello(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
c = takeReturnHello(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
d = takeReturnHello(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
|
||||
e = takeReturnHello(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello"'.
|
||||
!!! error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
|
||||
!!! error TS2345: Type '"World"' is not assignable to type '"Hello"'.
|
||||
|
||||
// Both should be valid.
|
||||
a = takeReturnHelloWorld(a);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
b = takeReturnHelloWorld(b);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
c = takeReturnHelloWorld(c);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
d = takeReturnHelloWorld(d);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
|
||||
e = takeReturnHelloWorld(e);
|
||||
~
|
||||
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello" | "World"'.
|
||||
!!! error TS2345: Type 'number' is not assignable to type '"World"'.
|
||||
}
|
||||
@ -159,13 +159,11 @@ var n2;
|
||||
(function (n2) {
|
||||
// The following (regardless of errors) should come back typed
|
||||
// as "Hello" (or "Hello" | "Hello").
|
||||
n2.a = fun1 < "Hello" > ("Hello", "Hello");
|
||||
n2.b = fun1 < "Hello" > ("Hello", "World");
|
||||
n2.c = fun2 < "Hello";
|
||||
"Hello" > ("Hello", "Hello");
|
||||
n2.d = fun2 < "Hello";
|
||||
"Hello" > ("Hello", "World");
|
||||
n2.e = fun3 < "Hello" > ("Hello", "World");
|
||||
n2.a = fun1("Hello", "Hello");
|
||||
n2.b = fun1("Hello", "World");
|
||||
n2.c = fun2("Hello", "Hello");
|
||||
n2.d = fun2("Hello", "World");
|
||||
n2.e = fun3("Hello", "World");
|
||||
// Assignment from the returned value should cause an error.
|
||||
n2.a = takeReturnString(n2.a);
|
||||
n2.b = takeReturnString(n2.b);
|
||||
@ -189,15 +187,11 @@ var n3;
|
||||
(function (n3) {
|
||||
// The following (regardless of errors) should come back typed
|
||||
// as "Hello" | "World" (or "World" | "Hello").
|
||||
n3.a = fun2 < "Hello";
|
||||
"World" > ("Hello", "World");
|
||||
n3.b = fun2 < "Hello";
|
||||
"World" > ("World", "Hello");
|
||||
n3.c = fun2 < "World";
|
||||
"Hello" > ("Hello", "Hello");
|
||||
n3.d = fun2 < "World";
|
||||
"Hello" > ("World", "World");
|
||||
n3.e = fun3 < "Hello" | "World" > ("Hello", "World");
|
||||
n3.a = fun2("Hello", "World");
|
||||
n3.b = fun2("World", "Hello");
|
||||
n3.c = fun2("Hello", "Hello");
|
||||
n3.d = fun2("World", "World");
|
||||
n3.e = fun3("Hello", "World");
|
||||
// Assignment from the returned value should cause an error.
|
||||
n3.a = takeReturnString(n3.a);
|
||||
n3.b = takeReturnString(n3.b);
|
||||
@ -235,16 +229,16 @@ declare namespace n1 {
|
||||
let e: string;
|
||||
}
|
||||
declare namespace n2 {
|
||||
let a: boolean;
|
||||
let b: boolean;
|
||||
let c: boolean;
|
||||
let d: boolean;
|
||||
let e: boolean;
|
||||
let a: "Hello";
|
||||
let b: any;
|
||||
let c: "Hello";
|
||||
let d: any;
|
||||
let e: any;
|
||||
}
|
||||
declare namespace n3 {
|
||||
let a: boolean;
|
||||
let b: boolean;
|
||||
let c: boolean;
|
||||
let d: boolean;
|
||||
let e: number;
|
||||
let a: "Hello" | "World";
|
||||
let b: any;
|
||||
let c: any;
|
||||
let d: any;
|
||||
let e: "Hello" | "World";
|
||||
}
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(6,25): error TS2304: Cannot find name 'hm'.
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(8,25): error TS1110: Type expected.
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(9,25): error TS1110: Type expected.
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(10,26): error TS1110: Type expected.
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(11,26): error TS1110: Type expected.
|
||||
tests/cases/compiler/typeParameterConstraints1.ts(12,26): error TS2304: Cannot find name 'undefined'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/typeParameterConstraints1.ts (6 errors) ====
|
||||
==== tests/cases/compiler/typeParameterConstraints1.ts (5 errors) ====
|
||||
function foo1<T extends any>(test: T) { }
|
||||
function foo2<T extends number>(test: T) { }
|
||||
function foo3<T extends string>(test: T) { }
|
||||
@ -17,8 +16,6 @@ tests/cases/compiler/typeParameterConstraints1.ts(12,26): error TS2304: Cannot f
|
||||
!!! error TS2304: Cannot find name 'hm'.
|
||||
function foo7<T extends Object>(test: T) { } // valid
|
||||
function foo8<T extends "">(test: T) { }
|
||||
~~
|
||||
!!! error TS1110: Type expected.
|
||||
function foo9<T extends 1 > (test: T) { }
|
||||
~
|
||||
!!! error TS1110: Type expected.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user