Когда в файлах декларации появляются ошибки, это, как правило, указывает на то, что в файле декларации используется синтаксис, недоступный в вашей версии TypeScript.
В этом случае, давайте посмотрим на строки, сообщенные как ошибки.
64: then(onFulfill?: ...
200: thenReject(reason?: any): Promise;
Ошибки, о которых здесь сообщается, указывают на знаки равенства в разделе аргументов типа. Это указывает на то, что аргументы типа по умолчанию не поддерживаются. Это на самом деле не имеет смысла, поскольку в TS2.3 была добавлена поддержка аргументов типа по умолчанию . Я думаю, что у вас не было 2.3 установленного для этих ошибок, и версии были переключены ...
С учетом этого другие ошибки, вероятно, связаны с несовместимостью старых (< 2.1, если я правильно помню) файлов typings
и новых файлов @types
. С типами, установленными в node_modules/@types/q
, вам не нужно включать пользовательскую папку typings
, поэтому вы должны иметь возможность удалить typings/modules/q
(фактически, всю папку typings
), чтобы устранить другую ошибку.
Если это не решит вашу проблему, проект клонирования позволит намного легче понять, что не так.
Ваш лучший подход мог бы быть должен сломать Ваш шлиц в отдельные линейные сегменты и протестировать каждый линейный сегмент на пересечение со строкой. Шлиц может пересечь строку больше чем в одной точке, таким образом, необходимо будет также решить, каким Вы интересуетесь.
Чистый математический подход:
Если это - путь, которым Вы идете, я могу разработать необходимые формулы.
Самый эффективный алгоритм, о котором я услышал, называют Bezier, отсекающим.
Вот книжная глава по кривой и пересечению шлица (PDF).