TypeScript返回参数类型

Jos*_*osh 8 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
Run Code Online (Sandbox Code Playgroud)

Ale*_*tos 10

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

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

var aString: string = foo('baz');
var aNumber: number = foo(6);
Run Code Online (Sandbox Code Playgroud)

T将是传递任何类型的泛型参数bar.

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

let aString = foo('bar'); // aString's type will be inferred as a string
Run Code Online (Sandbox Code Playgroud)

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

  • 哦,太酷了,我从没想过在不指定呼叫类型的情况下尝试它......哎呀。谢谢。 (4认同)