为什么需要类型为“any”的参数

问题描述 投票:0回答:1

我有一个带有

any
类型的单个参数的函数:

function doSomething(param: any) {
    // Do something with param
}

如果我尝试使用以下方式调用此函数:

doSomething();

我收到错误:“预期有 1 个参数,但得到了 0 个。”我可以通过传递

undefined
作为参数来删除错误:

doSomething(undefined);

未传递的参数默认为

undefined
,所以我不确定为什么需要显式传递
undefined
?不幸的是,该函数位于库中,因此我无法将参数标记为可选。

typescript optional-parameters
1个回答
0
投票

因为你的函数签名告诉你有一个类型为

any
的参数。所以调用的时候必须要传递一些东西。请注意,
any
也是一种类型,就像
string
number

Typescript 是一个编译时程序而不是运行时程序。因此,如果您在使用函数时不传递参数,打字稿就会抱怨。

如果不需要该参数,您可以使用

?
标记将其设为可选。

function doSomething(param?: any) {
    // Do something with param
}

当您不想编写长类型只是为了让 TypeScript 相信某行特定代码没问题时,

any
类型非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.