1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
tests/cases/compiler/mappedTypeUnionConstrainTupleTreatedAsArrayLike.ts(9,9): error TS2322: Type 'HomomorphicMappedType<T>' is not assignable to type 'any[]'.
==== tests/cases/compiler/mappedTypeUnionConstrainTupleTreatedAsArrayLike.ts (1 errors) ====
type HomomorphicMappedType<T> = { [P in keyof T]: T[P] extends string ? boolean : null }
function test1<T extends [number] | [string]>(args: T) {
const arr: any[] = [] as HomomorphicMappedType<T>
const arr2: readonly any[] = [] as HomomorphicMappedType<T>
}
function test2<T extends [number] | readonly [string]>(args: T) {
const arr: any[] = [] as HomomorphicMappedType<T> // error
~~~
!!! error TS2322: Type 'HomomorphicMappedType<T>' is not assignable to type 'any[]'.
const arr2: readonly any[] = [] as HomomorphicMappedType<T>
}
|