Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要声明';任何';在TypeScript中返回类型?_Typescript - Fatal编程技术网

为什么要声明';任何';在TypeScript中返回类型?

为什么要声明';任何';在TypeScript中返回类型?,typescript,Typescript,例如: function getUserInput(input: any): any { return input } 宣称“任何东西都可以退货”似乎很愚蠢。目的是什么?对于最初用TypeScript编写的代码,没有理由这样做 例如,当您必须使用已在Javascript中实现的getUserInput()函数时,当实际返回类型不明显时,有时可以使用带有any返回类型的声明作为快捷方式,你也不想事先花时间弄清楚在什么情况下返回的是什么类型。这对懒惰和无知的人很有用 但不要把这当成是一种咆

例如:

function getUserInput(input: any): any {
    return input
}

宣称“任何东西都可以退货”似乎很愚蠢。目的是什么?

对于最初用TypeScript编写的代码,没有理由这样做


例如,当您必须使用已在Javascript中实现的
getUserInput()
函数时,当实际返回类型不明显时,有时可以使用带有
any
返回类型的声明作为快捷方式,你也不想事先花时间弄清楚在什么情况下返回的是什么类型。

这对懒惰和无知的人很有用

但不要把这当成是一种咆哮

有时你(或你的客户/老板)“需要”在打字上懒惰。当实际类型太复杂时,您需要快速编写一些内容,正如artem在回答中所指出的那样

它可以允许编码的灵活性。(尽管最终可能会导致代码库不好)

此外,您可能完全不知道某个API调用或javascript函数的实际返回类型,这对您来说是一个黑盒子。也许它动态地构造了一个对象,并且有几十个可能的返回结构

例如:如果(经过清理的)输入可以是各种json表达式、数字或字符串等,您将如何键入
eval
函数的结果

当您开始编写
对象|数字|字符串|布尔|空
时,为了可读性,您希望改为编写
任何

但当然,你应该尽量避免这种情况,这被认为是不好的做法

无论如何,我认为在某些现实场景中,错过这种语言功能会使事情变得复杂

编辑:我差点忘了,但是我认为TypeScript必须有这个特性,或者根据它的规范有一个类似的特性:每个JavaScript代码都应该是“有效的”TypeScript(编译器会乐意接受任何JS代码作为TypeScript,并简单地将其转换为相同的JS代码,使用正确的编译器选项)

在这样的JS-TS代码中,大多数绑定都必须隐式键入为
any
,以适应这种情况