通用类型 'ComponentRef<C>' 需要 1 个类型参数

Posted

技术标签:

【中文标题】通用类型 \'ComponentRef<C>\' 需要 1 个类型参数【英文标题】:Generic type 'ComponentRef<C>' requires 1 type argument(s)通用类型 'ComponentRef<C>' 需要 1 个类型参数 【发布时间】:2016-11-03 08:22:54 【问题描述】:

无法删除 ionic-2 中的动态组件。打字稿编译时出现异常

“通用类型 'ComponentRef' 需要 1 个类型参数”。

此外,在不使用 ionic2 的情况下使用相同的代码。 非常感谢您的帮助。 提前致谢。

class DynamicCmp 
  _ref: ComponentRef;
  _idx: number;
  constructor(private resolver: ComponentResolver, private location: ViewContainerRef)  
  remove() 
    this._ref.destroy();
  
  add1() 
    this.resolver.resolveComponent(DynamicCmp).then((factory: ComponentFactory<any>) => 
      let ref = this.location.createComponent(factory, 0);
      ref.instance._ref = ref;
      ref.instance._idx = this._idx++;
    );
  

异常:TypeScript 错误:....../home/home.ts(9,11): Erro r TS2314:通用类型“ComponentRef”需要 1 个类型参数。

【问题讨论】:

【参考方案1】:

ComponentRef 是泛型类型。只需将您的代码更改为以下内容:

class DynamicCmp 
  _ref: ComponentRef<any>; <== add <any>

希望对你有帮助!

【讨论】:

以上是关于通用类型 'ComponentRef<C>' 需要 1 个类型参数的主要内容,如果未能解决你的问题,请参考以下文章

基于 C++17 中的范围,用于自定义容器或具有不同开始/结束类型的通用类

如何使用 ComponentRef 从内部销毁我的组件?

在C#中,您可以将对象类型向上转换为通用“对象”的集合类型

通用方法签名

如何使用接口从C ++中的模板强制通用数据类型?

如何使用具有类的通用类型的 ObjectMapper 反序列化 JsonString