首页 > 解决方案 > 插入新的接口方法命名空间 Typescript

问题描述

我正在使用具有命名空间的第三方库,thisLibrary并且在该命名空间内有一个 interface Options。我想向Options界面添加一个属性,然后Options在我的代码中使用更新版本。该index.d.ts库的文件如下所示:

export = thisLibrary;
export as namespace thisLibrary;

declare function thisLibrary(elements: HTMLElement | HTMLElement[], options: thisLibrary.Options): void;

declare namespace thisLibrary {
   const propA: boolean;
   let propB: number;

   interface Options{
      list?: ListEntry[] | any[];
      propC?: string;
      propD?: string | number;
   }
}

我希望能够导入thisLibrary到我的代码中,然后添加输入以便propE?: boolean我可以传递propE到我的函数调用中thisLibrary而不是引发错误。

我在 Angular 框架内工作,我的代码如下所示:

import * as thisLibrary from 'thisLibrary';

export class MyComponent implements OnInit {
   constructor() {}

   ngOnInit(): void {
      this.doThis()
   }

   private doThis(): void { 
      const myHTML = this.getHTML()
      thisLibrary(myHTML, {
         list: [[a, 10], [b, 7]],
         propC: 'blah blah',
         propD: 10,
         propE: true
      }
   }

目前,此代码在我的 TS linter 中引发错误,因为propE“类型选项中不存在”。

标签: javascripttypescriptjavascript-namespaces

解决方案


推荐阅读