gpt4 book ai didi

typescript - 使用泛型类型参数作为参数

转载 作者:行者123 更新时间:2023-12-03 17:05:49 27 4
gpt4 key购买 nike

我正在尝试创建一个通用函数,该函数使用 any 调用另一个函数类型参数。这是我尝试过的:

static GetInstance<T>(): T {
return <T>injector.get(T); // get(param: any): any
}

问题是这不能编译。我收到 Cannot find name 'T'错误。

我试过 get(typeof T)但 typeof T 是字符串 "function" .

我能做什么?

澄清一下:get() 方法接受类型。例如,您可以像这样使用它:
import { MyService } from '..'

constructor(){
let val = this.injector.get(MyService);
}

最佳答案

Typescript 中的泛型仅在设计时使用。在某些 JS 替换中永远不会出现 comiled。但是你想要做的,实际上是使用泛型,期望它们在 javscript 中编译。

换句话说,T不存在。它只为你增强。您不能将其作为变量传递,因为它不是变量。正如我所说,这完全是想象中的。

所以GetInstance方法必须调用 get具有实际值的函数,而不是 T因为它不存在。

关于typescript - 使用泛型类型参数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37525618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com