Javascript 如何使用ESLint在Angular11中创建Mixin

Javascript 如何使用ESLint在Angular11中创建Mixin,javascript,angular,typescript,mixins,angular11,Javascript,Angular,Typescript,Mixins,Angular11,在我的Angular9和Angular10项目中,我能够使用博客中的以下步骤创建mixin 构造函数.mixin.ts export type Constructor<T = {}> = new (...args: any[]) => T; import {Constructor} from './constructor.mixin'; import {BehaviorSubject} from 'rxjs'; export const myMixin = <T ex

在我的Angular9Angular10项目中,我能够使用博客中的以下步骤创建
mixin

构造函数.mixin.ts

export type Constructor<T = {}> = new (...args: any[]) => T;
import {Constructor} from './constructor.mixin';
import {BehaviorSubject} from 'rxjs';

export const myMixin = <T extends Constructor>(BaseClass: T = class { } as T) =>
  class extends BaseClass {
    title = 'Title in the mixin';
    titleUpdateSubject$ = new BehaviorSubject('');
    title$ = this.typedTitleSubject$.asObservable();
  };

导出类型构造函数=new(…args:any[])=>T; 我的mixin.mixin.ts

export type Constructor<T = {}> = new (...args: any[]) => T;
import {Constructor} from './constructor.mixin';
import {BehaviorSubject} from 'rxjs';

export const myMixin = <T extends Constructor>(BaseClass: T = class { } as T) =>
  class extends BaseClass {
    title = 'Title in the mixin';
    titleUpdateSubject$ = new BehaviorSubject('');
    title$ = this.typedTitleSubject$.asObservable();
  };

从'./Constructor.mixin'导入{Constructor};
从“rxjs”导入{BehaviorSubject};
导出常量myMixin=(基类:T=类{}为T)=>
类扩展了基类{
title='混合中的title';
titleUpdateSubject$=新行为主体(“”);
title$=this.typedTitleSubject$.asObservable();
};
在我按照中的步骤更新angular之前,这一切都很好

在成功地从
TSLint
更改为
ESLint
之后并运行linting(
npx ng lint我的项目名称--fix
)之后,我收到以下错误

1:29错误不要将
{}
用作类型
{}
实际上意味着“任何非空值”

  • 如果您想要一个表示“任何对象”的类型,您可能需要
    Record
  • 如果您想要一个表示“任意值”的类型,那么您可能需要
    未知
    而不是@typescript eslint/ban类型
export-type-Constructor=new(…args:any[])=>T


我的问题是如何重构此行以满足
typescript
。不幸的是,我无法在我的用例中找到答案,例如在中是关于如何键入非
null
值。

这里有解决方案吗?@mordechaidor
export-type-Constructor=new(…args:any[])=>T是我当前使用的,如果我像这样使用它,我会得到ts编译错误
类型为“typeof(匿名类)”的参数不能分配给类型为“Constructor”的参数,而不是使用mixin