lint 问题 - typescript - 禁止使用非箭头函数

lint issue - typescript - non arrow functions are forbidden

以下是一些代码,我们面临 lint 问题:-

export function TakeUntilDestroy(destroyMethodName = 'ngOnDestroy') {
    return function <T extends { new(...args: any[]): {} }>(constructor: T) {
      // some code
      }
}

我在代码的第 2 行遇到两个 lint 问题。第一个是“禁止使用非箭头函数”。我们不想删除 lint 规则来消除此错误。

第二个 lint 问题是“类型文字只有调用签名 - 请改用 'new(...args: any[]) => {}'。

我无法解决问题。我尝试了几件事,但无法解决同样的问题。这些问题对我来说是新的。

您正在使用语法 return function 定义一个新函数,第一条规则断言您应该改用箭头函数。

return <T extends { new(...args:any[]): {} }>(constructor: T) => {

See documentation on arrow functions here

第二个错误与您的通用类型 T 有关。看起来它还需要一个箭头函数,即

return <T extends { new(...args:any[]) => {} }>(constructor: T) => {

如果您用此代码段替换您发布的代码,是否会出现错误?

export function TakeUntilDestroy(destroyMethodName = 'ngOnDestroy') {
    return <T extends { new(...args: any[]) => {} }>(constructor: T) => {
      // some code
    }
}