1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| /**
| Create a union of the given object's values, and optionally specify which keys to get the values from.
|
| Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31438) if you want to have this type as a built-in in TypeScript.
|
| @example
| ```
| // data.json
| {
| 'foo': 1,
| 'bar': 2,
| 'biz': 3
| }
|
| // main.ts
| import {ValueOf} from 'type-fest';
| import data = require('./data.json');
|
| export function getData(name: string): ValueOf<typeof data> {
| return data[name];
| }
|
| export function onlyBar(name: string): ValueOf<typeof data, 'bar'> {
| return data[name];
| }
|
| // file.ts
| import {getData, onlyBar} from './main';
|
| getData('foo');
| //=> 1
|
| onlyBar('foo');
| //=> TypeError ...
|
| onlyBar('bar');
| //=> 2
| ```
| */
| export type ValueOf<ObjectType, ValueType extends keyof ObjectType = keyof ObjectType> = ObjectType[ValueType];
|
|