我们在typescript中有一个简单的方法
function identity(arg) {
return arg;
}
此方法提供一个参数并返回它,它将适用于任何类型(int,string,bool等)。 我们也可以用另一种方式声明这个方法:
function identity(arg:any):any {
return arg;
}
此方法提供一个参数并返回它,它将适用于任何类型(int,string,bool等)。
这两种方式有什么区别?换句话说,使用any
类型有什么好处?
答案 0 :(得分:1)
在您的特定情况下,无所谓。的但强>
任何是来自TypeScript的逃生舱,它意味着“我不知道这是什么类型,所以我用它做的任何事都是可以接受的,它上面的任何属性都隐含存在(并且还有任何类型),I可以使用任何参数调用它,我也可以new
。
建议您最小化any
的隐式或显式使用,因为这样会损失TypeScript提供的一些好处。
答案 1 :(得分:0)
any
喜欢一个匿名类型,而不是Object
。使用any
时,编译器会进行最小类型检查,因为它不知道变量的成员。
示例:
var var1: any;
var var2: Object;
var1.whatever(); // The compiler trusts you
var2.whatever(); // Compiler throws an error
正如您在示例中所看到的,您可以根据需要处理var1
,但除了正式成员之外,您不能使用var2
。
在你的函数中,你可以随意使用arg
,但是如果你为它指定了一个类型,那么你将必然会使用该类型的成员。