我想知道是否有办法在编译时忽略某些 TypeScript 错误?
我基本上遇到了大多数大型项目的人在使用this关键字时遇到的相同问题,我不想将所有类方法都放入构造函数中。
所以我有一个这样的例子:
这似乎创建了完全有效的 JS 并允许我绕过this关键字问题,但是正如您在示例中看到的那样,打字稿编译器告诉我,我无法将该代码编译为关键字 this 在该范围内无效。但是我不明白为什么它是一个错误,因为它产生了好的代码。
那么有没有办法告诉它忽略某些错误?我相信只要有时间,就会有一种很好的方法来管理this关键字,但目前我觉得它非常可怕。
== 编辑 ==
(除非你关心这个问题的上下文和部分咆哮,否则不要阅读)
只是为这一切添加一些背景信息,以表明我不仅仅是一些疯狂的工作(我相信你们中的很多人仍然认为我是)并且我有一些很好的理由让我能够允许这些要经历的错误。
以下是我之前提出的一些问题,这些问题突出了 TypeScript当前 此实现的一些主要问题(imo)。
https://typescript.codeplex.com/discussions/429350(我在底部做了一些评论)
我遇到的根本问题是我需要保证所有逻辑都在一致的范围内,我需要能够访问淘汰赛、jQuery 等和类的本地实例中的东西。我曾经使用 JavaScript 中的类内声明来执行此操作,var self = this;
并且效果很好。正如之前的一些问题中提到的,我现在不能这样做,所以我可以保证范围的唯一方法是使用 lambda 方法,而我可以将其中一个定义为类中的方法的唯一方法是在构造函数中,这部分很大程度上取决于个人喜好,但我发现人们似乎认为使用该语法被归类为推荐模式而不仅仅是一种解决方法,这很可怕。
我知道 TypeScript 处于 alpha 阶段,很多事情都会发生变化,我非常希望我们能找到更好的方法来处理这个问题,但目前我要么把一切都弄得一团糟,只是为了让 typescript 工作(这是在数百个文件中)我正在迁移到 TypeScript )或者我只是在这种情况下进行比编译器更了解的调用(我知道非常危险)所以我可以保持我的代码很好,并希望当出现更好的模式来处理这个问题时我然后可以迁移它。
顺便说一句,我知道很多人都喜欢 TypeScript 正在接受并尝试尽可能接近新的 JavaScript 功能和已知语法的事实,这很棒,但 typescript 不是 JavaScript 的下一个版本,所以我认为在语言中添加一些语法糖没有问题,因为想要使用最新最好的官方 JavaScript 实现的人仍然可以这样做。