typescript - 从抽象类中获取属性的智能感知
问题描述
我有一个返回抽象类的函数(不在这里添加类型,并且当前具有“任何”thing
属性)。
基类.ts
export function BaseClass(cls) {
const thing = someFunction(cls)
abstract class BaseThingClass{
public model
constructor() {
this.thing = thing
}
// ....other code
}
return BaseThingClass
}
我扩展了抽象类:
最终类.ts
export class FinalClass extends BaseClass(SomeClass){
async someFunction() {
const stuff = await this.thing.someFunction()
return stuff
}
}
这段代码总体上可以工作,但在 VSCode 中,我希望通过智能感知来查看this.thing
in的属性FanalClass
。是因为thing
是当前的类型any
吗?是否可以对抽象类属性进行智能感知?
斯科特
解决方案
您需要在BaseClass
函数中添加泛型类型参数,以便在使用时捕获传递给函数的实际类型extends
:
export function BaseClass<T>(cls: new ()=> T) {
const thing = new cls()
return class BaseThingClass{
public thing:T
constructor() {
this.thing = thing
}
}
}
export class FinalClass extends BaseClass(SomeClass){
async someFunction() {
const stuff = await this.thing.someFunction()
return stuff
}
}
推荐阅读
- python - 使用python在树莓派中一直接受声音输入
- c++ - 将图像 C++ 中的前 4 位右移
- operating-system - 在 BIOS 中启用英特尔 SGX
- php - 删除特定 id 的数组元素
- python - 如何为 ubuntu 32 位系统安装 tensorflow
- h.264 - 我正在使用 MediaCodec 实现原始 h264 播放器
- c++ - 整个项目的 GCC 选项 -ftime-report 总结
- git - 使用 Git LFS 从 github 下载失败
- netbeans - 手动更新 NetBeans
- regex - 在文本文件中查找“word:otherword”与 grep 和冒号的组合