例如:
function getUserInput(input: any): any {
return input
}
声明“任何东西都可以返回”似乎很愚蠢。目的是什么?
答案 0 :(得分:5)
对懒惰和无知的人很有用。
但是不要以为这是!
有时候,您(或您的客户/老板)“需要” 懒惰打字。如artem的答案中所述,当实际类型过于复杂时,您需要快速编写一些内容。
它可以允许灵活地编码。 (尽管最终可能会导致代码基础不佳)
此外,您很可能完全无知某些API调用或javascript函数的实际返回类型,这对您来说是一个黑盒。也许它动态地构造了一个对象并具有数十种可能的返回结构。
例如:如果(经过过滤的)输入可能是各种json表达式,数字,字符串等,您将如何键入eval
函数的结果?
为了便于阅读,开始写object | number | string | boolean | null
时,您想改写any
。
但是,当然,您应该尝试尽可能避免这种情况,这被认为是不好的做法。
无论如何,我认为在某些实际情况下错过此语言功能会使事情复杂化。
EDIT:我几乎忘记了,但是我认为TypeScript 必须具有此功能或与它的规范类似的功能:每个JavaScript代码都应该是“有效的” TypeScript(编译器很乐意接受任何JS代码作为TypeScript,并使用正确的编译器选项将其转换为相同的JS代码)。
在这样的JS-TS代码中,大多数绑定必须隐式键入为any
才能适应这种情况。
答案 1 :(得分:2)
没有必要对最初使用TypeScript编写的代码执行此操作。
例如,当必须使用已经在Javascript中实现的getUserInput()
函数时,有时在实际返回类型不明显的情况下,可以将带有any
返回类型的声明用作快捷方式,而且您不想花时间事先弄清楚在哪种情况下确切返回哪种类型。