我在运行tslint时收到以下错误,我之前没有收到..
ERROR: C:/...path..to../observable-debug-operator.ts[27,13]: Shadowed name: 'Observable'
我跟着这个tutorial添加了一个调试操作符给Observable,它工作正常,除了我得到这个lint错误.我一直在使用这个调试操作符一段时间没有得到lint错误,我不知道为什么我现在得到它.
declare module 'rxjs/Observable' { interface Observable<T> { // line 27 debug: (...any) => Observable<T>; } }
有谁知道我怎么能清除这个lint错误?谢谢!
以下是变量阴影的快速示例,以使警告清晰.
var x = 4; function example() { var x = 5; // x is shadowing the outer scope's x variable }
如果你声明一个接口的扩展(即Observable的两个实例都具有相同的公共根),你在技术上不是阴影,但是如果你有一个多级的Observable,它可能会让你不清楚你所指的是什么.
您可以使用以下选项关闭阴影警告:
"no-shadowed-variable": [ true,{ "class": true,"enum": true,"function": true,"interface": false,"namespace": true,"typeAlias": false,"typeParameter": false } ]
界面阴影是TypeScript中的问题吗?
不是真的 – 你会发现在一个函数内部声明了一个接口的情况,你也会抓到它,因为如果它是一个问题,TypeScript编译器就会告诉你有问题…即成员列表会告诉你两个范围中的正确成员.
接口也被擦除 – 因此没有后编译混淆,例如,如果有人在JavaScript程序中使用您的TypeScript库.
如果有人可以提供界面阴影会导致问题的实际示例,我很乐意改变我的观点.