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
}
}
以下是一些代码,我们面临 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
}
}