167. 解析 URL
极难
你需要实现一个类型解析器,将 URL 查询字符串解析成对象字面量类型。
一些详细的要求:
- 查询字符串中,键的值可以被忽略,但仍然解析为
true
。例如,key
没有值,那么解析结果是{ key: true }
。 - 重复的键必须合并为一个。如果同一个键有不同的值,这些值必须合并成一个元组类型。
- 如果一个键只有一个值,则该值不能被包装成元组类型。
- 如果同一个键的值出现多次,则只应视为一次。例如,
key=value&key=value
应当被视为key=value
。