()
| 2 | import { IsExact as Exact, isExact } from ".."; |
| 3 | |
| 4 | function testArray() { |
| 5 | const readonlyArray: readonly number[] = [1, 2, 3]; |
| 6 | const writableArray: number[] = [1, 2, 3]; |
| 7 | const tuple: [number] = [1]; |
| 8 | const readonlyTuple = [1, 2, 3] as const; |
| 9 | |
| 10 | const isReadonlyArray = isExact<readonly number[]>(); |
| 11 | const isWritableArray = isExact<number[]>(); |
| 12 | const isTuple = isExact<[number]>(); |
| 13 | const isReadonlyTuple = isExact<readonly [1, 2, 3]>(); |
| 14 | |
| 15 | isReadonlyArray(readonlyArray); |
| 16 | // @ts-expect-error: doesn't have `readonly` |
| 17 | isReadonlyArray(writableArray); |
| 18 | // @ts-expect-error: doesn't have `readonly` and is tuple |
| 19 | isReadonlyArray(tuple); |
| 20 | // @ts-expect-error: is tuple |
| 21 | isReadonlyArray(readonlyTuple); |
| 22 | |
| 23 | // @ts-expect-error: has `readonly` |
| 24 | isWritableArray(readonlyArray); |
| 25 | isWritableArray(writableArray); |
| 26 | // @ts-expect-error: is tuple |
| 27 | isWritableArray(tuple); |
| 28 | // @ts-expect-error: has `readonly` and is tuple |
| 29 | isWritableArray(readonlyTuple); |
| 30 | |
| 31 | // @ts-expect-error: has `readonly` and isn't tuple |
| 32 | isTuple(readonlyArray); |
| 33 | // @ts-expect-error: isn't tuple |
| 34 | isTuple(writableArray); |
| 35 | isTuple(tuple); |
| 36 | // @ts-expect-error: has `readonly` |
| 37 | isTuple(readonlyTuple); |
| 38 | |
| 39 | // @ts-expect-error: isn't tuple |
| 40 | isReadonlyTuple(readonlyArray); |
| 41 | // @ts-expect-error: has NO `readonly` and isn't tuple |
| 42 | isReadonlyTuple(writableArray); |
| 43 | // @ts-expect-error: has NO `readonly` |
| 44 | isReadonlyTuple(tuple); |
| 45 | isReadonlyTuple(readonlyTuple); |
| 46 | } |
| 47 | |
| 48 | function testObjects() { |
| 49 | type ABC = { a: number; b: number; c: number }; |
nothing calls this directly
no test coverage detected
searching dependent graphs…