Fix Index types and string index signatures section PR1073

This commit is contained in:
zhongsp 2019-09-21 15:42:18 +08:00
parent 50901ca411
commit 97f3890280

View File

@ -807,14 +807,16 @@ let unknown = getProperty(taxi, 'unknown');
## 索引类型和字符串索引签名
`keyof`和`T[K]`与字符串索引签名进行交互。
如果你有一个带有字符串索引签名的类型,那么`keyof T`会是`string`。
如果你有一个带有字符串索引签名的类型,那么`keyof T`会是`string | number`。
(并非只有`string`因为在JavaScript里你可以使用字符串`object['42'`或
数字`object[42]`索引来访问对象属性)。
并且`T[string]`为索引签名的类型:
```ts
interface Dictionary<T> {
[key: string]: T;
}
let keys: keyof Dictionary<number>; // string
let keys: keyof Dictionary<number>; // string | number
let value: Dictionary<number>['foo']; // number
```