如何解释这些 TypeScript 声明中的 [p in keyof T] 和 T[p]?

vul*_*ulp 4 typescript ngrx

我正在阅读ngrx文档并偶然发现了这样的代码。什么[p in keyof T]T[p]意味着什么呢?

export type ActionReducerMap<T, V extends Action = Action> = {
  [p in keyof T]: ActionReducer<T[p], V>
};
Run Code Online (Sandbox Code Playgroud)

CRi*_*ice 10

那是一种映射类型。您可以在此处的打字稿文档或此博客文章中阅读有关它们的信息

基本上,语法[p in keyof T]就是这个意思;p是对象的键之一T。然后,T[p]只代表该键值的类型。阅读这两个链接以获得更可靠的解释。