type-fest/test-d/array-indices.ts
Lucas Teles c330852999
Add ArrayIndices type (#716)
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
2023-10-21 13:29:17 +07:00

27 lines
679 B
TypeScript

import {expectNotAssignable, expectType, expectAssignable} from 'tsd';
import type {ArrayIndices} from '../index';
const values = ['a', 'b', 'c'] as const;
type ValueKeys = ArrayIndices<typeof values>;
declare const test: 0 | 1 | 2;
expectType<ValueKeys>(test);
expectAssignable<ValueKeys>(0);
expectAssignable<ValueKeys>(1);
expectAssignable<ValueKeys>(2);
expectNotAssignable<ValueKeys>(-1);
expectNotAssignable<ValueKeys>(3);
type TupleKeys = ArrayIndices<['a', 2]>;
declare const testTuple: 0 | 1;
expectType<TupleKeys>(testTuple);
expectAssignable<TupleKeys>(0);
expectAssignable<TupleKeys>(1);
expectNotAssignable<TupleKeys>(-1);
expectNotAssignable<TupleKeys>(2);