Мне интересно, есть ли способ игнорировать определенные ошибки TypeScript при компиляции?
У меня в основном те же проблемы, которые возникают у большинства людей с большими проектами при использовании ключевого слова this, и я не хочу помещать все методы моих классов в конструктор.
Итак, у меня есть такой пример:
Кажется, что это создает совершенно правильный JS и позволяет мне обойти проблему с ключевым словом this, однако, как вы можете видеть в примере, компилятор машинописного текста сообщает мне, что я не могу скомпилировать этот код в качестве ключевого слова, это не действительно в этой области. Однако я не понимаю, почему это ошибка, поскольку он дает нормальный код.
Так есть ли способ заставить его игнорировать определенные ошибки? Я уверен, что со временем появится хороший способ управлять ключевым словом this, но в настоящее время я считаю его довольно ужасным.
== Редактировать ==
(Не читайте, если вас не интересует контекст этого вопроса и частичная напыщенная речь)
Просто чтобы добавить контекст ко всему этому, чтобы показать, что я не просто чокнутый (я уверен, что многие из вас все еще будут так думать) и что у меня есть несколько веских причин, по которым я хочу иметь возможность разрешить это. ошибки, которые нужно пройти.
Вот несколько предыдущих вопросов, которые я задал, которые подчеркивают некоторые основные проблемы (imo) с текущей этой реализацией TypeScript.
Использование шезлонга с Typescript
Проблема с дочерней областью видимости этого в Typescript
https://typescript.codeplex.com/discussions/429350 (и некоторые комментарии, которые я делаю дно)
Основная проблема, с которой я столкнулся, заключается в том, что мне нужно гарантировать, что вся логика находится в согласованной области, мне нужно иметь доступ к вещам в пределах knockout, jQuery и т. Д. И локального экземпляра класса. Раньше я делал это с var self = this;
в объявлении класса в JavaScript и отлично работал. Как упоминалось в некоторых из этих предыдущих вопросов, я не могу этого сделать сейчас, поэтому единственный способ гарантировать область видимости - это использовать лямбда-методы, и единственный способ определить один из них как метод внутри класса - внутри конструктора, и эта часть ТЯЖЕЛА зависит от личных предпочтений, но я нахожу ужасным то, что люди, кажется, думают, что использование этого синтаксиса классифицируется как рекомендуемый шаблон, а не просто обходной путь.
Я знаю, что TypeScript находится в альфа-фазе, и многое изменится, и я очень надеюсь, что мы получим более приятный способ справиться с этим, но в настоящее время я либо делаю все огромным беспорядком, чтобы заставить машинописный текст работать ( и это в пределах Сотни файлов, которые я перехожу на TypeScript), или я просто делаю вызов, который я знаю лучше, чем компилятор в этом случае (ОЧЕНЬ ОПАСНО, Я ЗНАЮ), чтобы я мог сохранить свой код красивым и, надеюсь, когда лучше шаблон выходит для обработки этого, я могу перенести его тогда.
Кроме того, я знаю, что многим людям нравится тот факт, что TypeScript охватывает и пытается оставаться как можно ближе к новым функциям JavaScript и известному синтаксису, что прекрасно, но машинописный текст НЕ является следующей версией JavaScript, поэтому Я не вижу проблем с добавлением синтаксического сахара в язык, поскольку люди, которые хотят использовать последнюю и лучшую официальную реализацию JavaScript, все еще могут это сделать.
public someMethod(): string { return "hello"; }
не гарантирует контекст this, в отличие от лямбда-выражений. - person Grofit   schedule 15.04.2013