From 2a370c9aa7ad5d1d12fb83508f99cd1f08b42d2b Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 10 Nov 2015 14:40:19 -0800 Subject: [PATCH] Added tests for string literal types used as generic constraints. --- ...LiteralTypesAsTypeParameterConstraint01.ts | 19 +++++++++++++++++++ ...LiteralTypesAsTypeParameterConstraint02.ts | 8 ++++++++ 2 files changed, 27 insertions(+) create mode 100644 tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.ts create mode 100644 tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts diff --git a/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.ts b/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.ts new file mode 100644 index 00000000000..53f516f4209 --- /dev/null +++ b/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.ts @@ -0,0 +1,19 @@ +// @declaration: true + +function foo(f: (x: T) => T) { + return f; +} + +function bar(f: (x: T) => T) { + return f; +} + +let f = foo(x => x); +let fResult = f("foo"); + +let g = foo((x => x)); +let gResult = g("foo"); + +let h = bar(x => x); +let hResult = h("foo"); +hResult = h("bar"); \ No newline at end of file diff --git a/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts b/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts new file mode 100644 index 00000000000..fb3a019402d --- /dev/null +++ b/tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts @@ -0,0 +1,8 @@ +// @declaration: true + +function foo(f: (x: T) => T) { + return f; +} + +let f = foo((y: "foo" | "bar") => y === "foo" ? y : "foo"); +let fResult = f("foo"); \ No newline at end of file