在 TypeScript 中编写复杂类型时,不同的运算符具有一定的优先级。
例如这段代码:
typeof map[T]
直观上,我们可以认为它相当于:
typeof (map[T])
但它实际上相当于:
(typeof map)[T]
这意味着
typeof
是否有包含所有关键字的优先顺序表:
extends
infer
keyof
这里是完整表格的链接。
我还可以推荐 Udemy 上的免费课程,其中对以下内容有很好的解释: 运算符和优先级。