无法实例化 ColDef 变量

Posted

技术标签:

【中文标题】无法实例化 ColDef 变量【英文标题】:Trouble instantiating ColDef variable 【发布时间】:2021-11-30 10:08:48 【问题描述】:

我正在努力在 TypeScript 中创建一个局部变量。 ColDef 是 agGrid 中的一种类型。

我可以创建一个 ColDefs 数组,只需一个条目,然后抓取它...... 但我似乎无法简单地得出正确的语法

    import  ColDef  from 'ag-grid-community';

foo()

    let try1 = new ColDef(  field : this.fieldName); //get error
    let try2 = new ColDef(   this.fieldName );  //get error 
    const try3 = new ColDef(   this.fieldName );  //get error 

   
    let myCDs : ColDef[] = [
            field : this.fieldName
          ];
    let myCD : ColDef = myCDs[0];  //and yet this works...  


无论我尝试什么,我都会得到

src/app/helpers/agGrid/AgColDef.ts(20,31) 中的错误:错误 TS2693:“ColDef”仅指一种类型,但在此处用作值。

仅声明 1 个 ColDef 对象的正确语法是什么?

(我意识到这是一个新手 TS 问题,所以 tyia)

【问题讨论】:

【参考方案1】:

您正在尝试使用Interface 就像class

export interface ColDef 扩展 AbstractColDef、IFilterDef ColDef github

如果你想为一个接口创建一个对象:

let obj: ColDef =  /* properties */ 

这是可行的,因为创建的对象只需要 ColDef 接口中指定的一组属性。

【讨论】:

vaira - 你从哪里决定 ColDef 是一个接口?我翻遍了手册,但从未真正看到过声明。 ag-grid.com/angular-data-grid/column-properties 很高兴看到声明。现在我的类返回一个 ColDef,最好是“成为”一个 ColDef 并实现定义。 我已经在答案中附加了链接,在同一个文件的第 104 行中,您可以看到它的接口。该手册不是用来说明底层实现的内容,您只能在存储库中找到它,或者在您的项目中您可以从模块中找出它。 我忽略了那个链接,再次感谢,

以上是关于无法实例化 ColDef 变量的主要内容,如果未能解决你的问题,请参考以下文章

捕获的变量实例化问题

无法实例化 MatchXpath

当子类使用Object变量实例化时,无法从超类访问方法

GDB 远程调试 - 无法为默认可视化器实例化打印机

Android错误,无法实例化服务...接口无法实例化

我为一个类声明了一个变量,并将其传递给一个方法来实例化它,但原始变量仍未实例化