Typescript 不允许在 URLSearchParams 中使用数字/数组



在typescript中,URLSearchParams的append方法类型为append(name: string, value: string): void;

我尝试添加数组&数字它在浏览器中对我有效,但在打字脚本代码中出现错误。

在MDN中,我发现了一个使用数字作为值的示例https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/append

我想知道我们是否可以在typescript 中使用字符串以外的值

Typescript是为了防止错误使用错误类型而发生的错误。

默认情况下,URL是单个字符串,因此该方法只需要接受一个字符串。

使用typescript,您只需执行以下操作即可将数字转换为字符串:

const num = 1;
whatever.append('param', num + ''); // or call num.toString()

JavaScript(没有Typescript开销(,只需在将数字附加到整个URL后立即将其转换为字符串。这是在.append()函数内部发生的(甚至可能更晚(。

但在JavaScript中,您也可以传递实例Date的变量。这是可能的,但.append()函数可能会混淆、抛出错误或调用您可能不想要的Date的默认.toString()

它在浏览器中工作,因为浏览器解释的是javascript代码,而不是typescript。Typescript在运行之前会编译成javascript代码——您不能运行纯Typescript。在调用append函数之前,请尝试将数组和数字转换为字符串,例如:

var name = [0,1,2]
var value = 3
name = name.toString()
value = value.toString()
x.append(name, value)

最新更新