Small improvement:
type Json = number | boolean | string | { [prop: string]: Json } | Array<Json>; const getFirstElement = <Elem extends Json, Tuple extends Elem[]>( arr: [...Tuple] ): Tuple[0] => arr[0]; const value1 = getFirstElement([1, 2, 3, 4]); // 1 const value2 = getFirstElement(["hello", "hai", "hey"]); // "hello"
As you might have noticed, TS is able to infer literal type with help of Variadic tuple types. You can find more examples in my blog here and here
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Small improvement:
As you might have noticed, TS is able to infer literal type with help of Variadic tuple types.
You can find more examples in my blog here and here