Javascript 如何使用ESLint在Angular11中创建Mixin
在我的Angular9和Angular10项目中,我能够使用博客中的以下步骤创建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
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
值。这里有解决方案吗?@mordechaidorexport-type-Constructor=new(…args:any[])=>T代码>是我当前使用的,如果我像这样使用它,我会得到ts编译错误类型为“typeof(匿名类)”的参数不能分配给类型为“Constructor”的参数,而不是使用mixin