angular - angular2+ tslint 在使用 forwardRef 时显示“声明前使用的变量 xxx”
问题描述
我正在使用“forwardRef”来编写一个自定义表单组件。它可以工作,但是在运行 ng lint 时,会显示“声明前使用的变量 FormMultiInputComponent”。那么如何避免错误呢?
export const EXE_COUNTER_VALUE_ACCESSOR: any = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => FormMultiInputComponent),
multi: true
};
@Component({
selector: 'cmss-form-multi-input',
templateUrl: './form-multi-input.component.html',
styleUrls: ['./form-multi-input.component.scss'],
providers: [EXE_COUNTER_VALUE_ACCESSOR]
})
解决方案
要解决此问题,您可以"no-use-before-declare": false
在 TSLINT json 文件上进行设置
来自文档
此规则主要在使用 var 关键字时很有用,因为编译器会在声明之前自动检测是否使用了块范围的 let 和 const 变量。由于大多数现代 TypeScript 不使用 var,因此通常不鼓励使用此规则,并将其保留用于遗留目的。它的计算速度很慢,在内置配置预设中未启用,并且不应用于通知 TSLint 设计决策。
推荐阅读
- javascript - 在反应中有顶级变量是不是很糟糕?
- blockchain - 0x 协议错误:未找到给定网络 ID 的默认合约地址
- node.js - 吉普错误!: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` 失败,退出代码:1
- c# - 我正在创建一个数组,我想从构造函数中指定它的长度
- c# - 动态生成属性表达式和空参数
- javascript - 如何将 JSON 数据存储在 JavaSCript 中的变量中?
- c# - x509store.Certificates.Find 为对象查找值传入字符串变量不匹配,但硬编码字符串值不匹配
- encryption - 如何在notepad++上配置nppcrypt插件参数
- python-3.x - 无法在 Ubuntu 中创建百万套接字连接
- python - 寻根代码的 Python TypeError(QuantEcon 包)