保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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];