使用通用类型参数作为参数

dstr

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

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

问题是这无法编译。Cannot find name 'T'出错了。

我尝试过,get(typeof T)但是typeof T是string "function"

我能做什么?

为了澄清起见:get()方法接受类型。例如,您可以像这样使用它:

import { MyService } from '..'

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

Typescript中的泛型仅是设计时。在某些JS替换中将永远不会被编译。但是,您要尝试做的实际上是使用期望它们在javscript中进行编译的泛型。

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

因此,该GetInstance方法必须get使用实际值来调用该函数,而不是T不存在它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章