File tree Expand file tree Collapse file tree 1 file changed +3
-4
lines changed Expand file tree Collapse file tree 1 file changed +3
-4
lines changed Original file line number Diff line number Diff line change @@ -512,15 +512,14 @@ type Foo = keyof typeof MyEnum;
512
512
513
513
上面示例中,` keyof typeof MyEnum ` 可以取出` MyEnum ` 的所有成员名,所以类型` Foo ` 等同于联合类型` 'A'|'B' ` 。
514
514
515
- 注意,这里的` typeof ` 是必需的,否则` keyof MyEnum ` 相当于` keyof number ` 。
515
+ 注意,这里的` typeof ` 是必需的,否则` keyof MyEnum ` 相当于` keyof string ` 。
516
516
517
517
``` typescript
518
518
type Foo = keyof MyEnum ;
519
- // "toString" | "toFixed" | "toExponential" |
520
- // "toPrecision" | "valueOf" | "toLocaleString"
519
+ // number | typeof Symbol.iterator | "toString" | "charAt" | "charCodeAt" | ...
521
520
```
522
521
523
- 上面示例中,类型` Foo ` 等于类型` number ` 的所有原生属性名组成的联合类型。
522
+ 上面示例中,类型` Foo ` 等于类型` string ` 的所有原生属性名组成的联合类型。这是 ` MyEnum ` 为字符串 Enum 的结果,如果 ` MyEnum ` 是数值 Enum,那么 ` keyof MyEnum ` 相当于 ` keyof number ` 。
524
523
525
524
这是因为 Enum 作为类型,本质上属于` number ` 或` string ` 的一种变体,而` typeof MyEnum ` 会将` MyEnum ` 当作一个值处理,从而先其转为对象类型,就可以再用` keyof ` 运算符返回该对象的所有属性名。
526
525
You can’t perform that action at this time.
0 commit comments