TypeScript中是否有一种方法可以指示返回是参数的类型,而无需显式声明类型(例如,在通用参数中)?有点像表明它是一种类型识别功能。
例如:
function foo(bar) {
// ...do crazy stuff to bar...
return bar;
}
var aString = foo('baz'); // aString is of string type
var aNumber = foo(6); // aNumber is of number type
答案 0 :(得分:9)
有。它们被称为泛型。在你的情况下,它看起来像:
function foo<T>(bar: T): T {
return bar;
}
var aString: string = foo('baz');
var aNumber: number = foo(6);
T
将是通用参数,它将采用bar
中传递的任何类型。
此外,您不必显式指定通用参数(string
,number
),因为编译器会根据您在每次调用时传递的实际值来推断它。因此,以下内容将是有效且正确推断的:
let aString = foo('bar'); // aString's type will be inferred as a string
您可以在官方文档中阅读更多相关信息: https://www.typescriptlang.org/docs/handbook/generics.html