TypeScript返回参数类型

时间:2016-07-27 18:35:38

标签: typescript

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

1 个答案:

答案 0 :(得分:9)

有。它们被称为泛型。在你的情况下,它看起来像:

function foo<T>(bar: T): T {
  return bar;
}

var aString: string = foo('baz');
var aNumber: number = foo(6);

T将是通用参数,它将采用bar中传递的任何类型。

此外,您不必显式指定通用参数(stringnumber),因为编译器会根据您在每次调用时传递的实际值来推断它。因此,以下内容将是有效且正确推断的:

let aString = foo('bar'); // aString's type will be inferred as a string

您可以在官方文档中阅读更多相关信息: https://www.typescriptlang.org/docs/handbook/generics.html