键入问题URLSearchParams

时间:2019-05-16 07:55:12

标签: reactjs typescript

我有这个鳕鱼。

const paramsString = "q=URLUtils.searchParams&topic=api";
const searchParams = new URLSearchParams(paramsString);
const Search: string = searchParams.get("topic")?
searchParams.get("topic"):"100";

我收到此错误。输入'string | “ null”不可分配给“ string”类型。   不能将'null'类型分配给'string'类型。

1 个答案:

答案 0 :(得分:1)

更新: 只需将参数值存储在变量中(Typescript不会对函数调用进行基于控制流的类型分析):

const topic = searchParams.get("topic");
const Search: string = topic ? topic : "100";

这是因为如果找不到搜索参数,URLSearch​Params​.get()返回null,所以searchParams.get("Search")可以是null

您已启用strictNullChecks编译器选项,因此会出现错误。

要解决此问题,您可以将变量键入为string | null

const Search: string | null = searchParams.get("topic") ? searchParams.get("Search") : "100";

或者,如果您确定,则查询字符串具有“搜索”参数,您可以使用non-null assertion operator

const Search: string = searchParams.get("topic") ? searchParams.get("Search")! : "100";