Ts 常用

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
interface a {
z: 1
x: 2
}

type b = a

enum c {
a,
b,
c,
}

declare namespace API {
type get = {}

interface post {}
}

Omit<a, z>
Pick<a, x>

Partial<a> // 可选
Required<a> // 必选
Readonly<a> // 只读
Mutable<a> // 移除只读

Exclude<'key1' | 'key2', 'key2'> // 'key1'
Extract<'key1' | 'key2', 'key1'> // 'key1'

typeof a

type d = keyof a

Record

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type petsGroup = 'dog' | 'cat' | 'fish';
interface IPetInfo {
name:string,
age:number,
}

type IPets = Record<petsGroup, IPetInfo>;

const animalsInfo:IPets = {
dog:{
name:'dogName',
age:2
},
cat:{
name:'catName',
age:3
},
fish:{
name:'fishName',
age:5
}
}