【问题标题】:noUnusedLocals not working in function*noUnusedLocals 在函数中不起作用*
【发布时间】:2018-10-24 04:09:10
【问题描述】:

编译器选项: “noUnusedLocals”:是的, “noUnusedParameters”:真, 不在功能中工作。例如我收到错误:

export class AllReduxSagas {

[ts] 属性 'someService' 已声明,但从未读取其值。

    constructor(private someService: SomeService) {} 

      watchSaga = function* watchSaga() {
        yield takeEvery(ACTION_TYPE.SOME_ACTION, this.someSaga, this.someService);
      };
...
}

someService 无法被编译器识别,但是当我删除上述编译器选项时 - 一切正常。 为什么会发生这种情况,以及如何解决这个问题。

【问题讨论】:

    标签: angular typescript visual-studio-code redux-saga


    【解决方案1】:

    问题是watchSaga 不是类的成员函数,它是一个具有函数值的字段。所以watchSaga函数内部的this不一定引用包含类(this将在函数内部键入any

    考虑使函数成为成员函数:

    export class AllReduxSagas {
        constructor(private someService: SomeService) { }
    
        *watchSaga() {
            yield this.someService;
        };
    }
    

    或者如果你出于某种原因想坚持类型函数语法的字段,你可以显式键入this(虽然这并不一定意味着传递的this将是该类的一个实例,它仍然是function 不是 => 箭头函数)

    watchSaga = function* watchSaga(this: AllReduxSagas) {
        yield this.someService;
    };
    

    【讨论】:

    • @СергейМойся 不要忘记标记答案,而不仅仅是投票:)
    猜你喜欢
    • 1970-01-01
    • 2020-12-24
    • 2011-12-13
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多