mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Move lone test case into central test file
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
tests/cases/compiler/indexedAccessRelation2.ts(4,9): error TS2322: Type 'keyof T' is not assignable to type 'K'.
|
||||
tests/cases/compiler/indexedAccessRelation2.ts(5,9): error TS2322: Type 'T[keyof T]' is not assignable to type 'T[K]'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/indexedAccessRelation2.ts (2 errors) ====
|
||||
// Repro from #17166
|
||||
function f<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
~
|
||||
!!! error TS2322: Type 'keyof T' is not assignable to type 'K'.
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
~~~~~
|
||||
!!! error TS2322: Type 'T[keyof T]' is not assignable to type 'T[K]'.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
//// [indexedAccessRelation2.ts]
|
||||
// Repro from #17166
|
||||
function f<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//// [indexedAccessRelation2.js]
|
||||
// Repro from #17166
|
||||
function f(obj, k, value) {
|
||||
for (var key in obj) {
|
||||
k = key; // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
@@ -27,9 +27,11 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(76,5): error
|
||||
Type 'T' is not assignable to type 'T & U'.
|
||||
Type 'T' is not assignable to type 'U'.
|
||||
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(77,5): error TS2322: Type 'keyof (T & U)' is not assignable to type 'keyof (T | U)'.
|
||||
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(84,9): error TS2322: Type 'keyof T' is not assignable to type 'K'.
|
||||
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(85,9): error TS2322: Type 'T[keyof T]' is not assignable to type 'T[K]'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts (25 errors) ====
|
||||
==== tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts (27 errors) ====
|
||||
class Shape {
|
||||
name: string;
|
||||
width: number;
|
||||
@@ -162,4 +164,18 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(77,5): error
|
||||
~~
|
||||
!!! error TS2322: Type 'keyof (T & U)' is not assignable to type 'keyof (T | U)'.
|
||||
k2 = k1;
|
||||
}
|
||||
}
|
||||
|
||||
// Repro from #17166
|
||||
function f3<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
~
|
||||
!!! error TS2322: Type 'keyof T' is not assignable to type 'K'.
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
~~~~~
|
||||
!!! error TS2322: Type 'T[keyof T]' is not assignable to type 'T[K]'.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,17 @@ function f20<T, U>(k1: keyof (T | U), k2: keyof (T & U), o1: T | U, o2: T & U) {
|
||||
o2 = o1; // Error
|
||||
k1 = k2; // Error
|
||||
k2 = k1;
|
||||
}
|
||||
}
|
||||
|
||||
// Repro from #17166
|
||||
function f3<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//// [keyofAndIndexedAccessErrors.js]
|
||||
var Shape = /** @class */ (function () {
|
||||
@@ -109,3 +119,10 @@ function f20(k1, k2, o1, o2) {
|
||||
k1 = k2; // Error
|
||||
k2 = k1;
|
||||
}
|
||||
// Repro from #17166
|
||||
function f3(obj, k, value) {
|
||||
for (var key in obj) {
|
||||
k = key; // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// Repro from #17166
|
||||
function f<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,4 +76,13 @@ function f20<T, U>(k1: keyof (T | U), k2: keyof (T & U), o1: T | U, o2: T & U) {
|
||||
o2 = o1; // Error
|
||||
k1 = k2; // Error
|
||||
k2 = k1;
|
||||
}
|
||||
}
|
||||
|
||||
// Repro from #17166
|
||||
function f3<T, K extends keyof T>(obj: T, k: K, value: T[K]): void {
|
||||
for (let key in obj) {
|
||||
k = key // error, keyof T =/=> K
|
||||
value = obj[key]; // error, T[keyof T] =/=> T[K]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user