TypeScript 返回参数的类型

标签 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

最佳答案

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

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

关于TypeScript 返回参数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38620733/

相关文章:

javascript - TypeScript 默认导入失败

typescript - tsconfig 选项 "lib"有什么作用?

angular - 向 Angular router.navigate 添加参数

typescript - 如何在 typescript 中加载定义文件

html - Angular 2 形式 "Cannot Find Control"

javascript - Ngrx 选择器不触发更新

node.js - TypeScript + Express : req. 参数

node.js - 使用 Fastify : "@nestjs/platform-express" package is missing"error 对 NestJS 进行端到端测试

javascript - 类型 'Observable<boolean | "“>' is not assignable to type ' 可观察< bool 值>” TS2322

javascript - 如何访问包含 '-' 个字符的对象字段