这个问题对一个纯前端工程师来说是有些"奇怪"的.因为前端并不需要对JSON 进行encode/decode , 只需要对JSON string 进行parse.parse 之后的数据便是JavaScript...(`{ "gender": 0 }`);由于JSON.parser返回类型为any, 故在我们需要显示地声明user变量为User类型.但是如果JSON 数据为:{ "gender": 2}这个时候我们的..., A>;然后我们便可以将Either[] => Either简化为Array> => F>, 为了使其更加泛用, 我们可以将Array替换为类型变量..., Parserany, string, any>>>(properties: P) => Parser }, string,...p2})其中v被推断为: Parserstring, {a: string}>.在实现层面上, 我们可以将其类型简化为RecordLike> =