dst*_*str 5 typescript typescript-generics
我正在尝试创建一个泛型函数,该函数使用any类型参数调用另一个函数。这是我尝试过的:
static GetInstance<T>(): T {
return <T>injector.get(T); // get(param: any): any
}
Run Code Online (Sandbox Code Playgroud)
问题是这不能编译。我收到Cannot find name 'T'错误。
我试过了,get(typeof T)但 typeof T 是 string "function"。
我能做什么?
澄清一下:get() 方法接受类型。例如,您可以像这样使用它:
import { MyService } from '..'
constructor(){
let val = this.injector.get(MyService);
}
Run Code Online (Sandbox Code Playgroud)
Typescript 中的泛型仅在设计时有效。在某些 JS 中永远不会出现 comied 替换。但您想要做的实际上是使用泛型,期望它们在 javscript 中进行编译。
\n\n换句话说,T不存在。it\xc2\xb4s 只为你增强。您不能将其作为变量传递,因为它不是变量。正如我所说,这完全是想象的。
因此,该GetInstance方法必须get使用实际值来调用该函数,而不是T因为它不存在。
| 归档时间: |
|
| 查看次数: |
5360 次 |
| 最近记录: |