Какие директивы есть в TypeScript и зачем их использовать?
#typescript
Директива это комментарий, который говорит TypeScript компилятору изменить свое поведение. Существуют Triple-Slash Directives, которые выходят за рамки этого рецепта. Их использование оправдано при создание библиотек, но не приложений.
Сегодня же речь об директивах начинающихся
➡️
➡️
➡️
➡️
Каноническим примером использования @ts-expect-error является обращение к приватному свойству в unit тесте.
Тут можно прочитать рекомендацию, что в каком случае использовать @ts-expect-error или @ts-ignore. Выработанную договоренность лучше закрепить на уровне линтинга с помощью @typescript-eslint/ban-ts-comment.
#typescript
Директива это комментарий, который говорит TypeScript компилятору изменить свое поведение. Существуют Triple-Slash Directives, которые выходят за рамки этого рецепта. Их использование оправдано при создание библиотек, но не приложений.
Сегодня же речь об директивах начинающихся
@ts-. На текущий момента, в версии TypeScript 4.2, их существует 4:➡️
// @ts-check – применяется только в начале javascript файла. Используется в ходе перехода с JS на TS. Для typescript файлов не применим.➡️
// @ts-nocheck – применяется только в начале файла. Все ошибки в файле будут проигнорированы. Используется и в JS, и в TS. Рекомендован в случае перехода на TS.➡️
// @ts-ignore – возможная ошибка на следующей строке будет проигнорирована.➡️
// @ts-expect-error – ошибка на следующей строке будет проигнорирована. Если ошибки нет, то TypeScript компилятор выкинет ошибку Unused '@ts-expect-error' directive. Использование предпочтительней, чем @ts-ignore. Каноническим примером использования @ts-expect-error является обращение к приватному свойству в unit тесте.
Тут можно прочитать рекомендацию, что в каком случае использовать @ts-expect-error или @ts-ignore. Выработанную договоренность лучше закрепить на уровне линтинга с помощью @typescript-eslint/ban-ts-comment.
Что такое AssemblyScript?
#typescript
Универсальный способ оптимизации производительности для JavaScript разработчика это перенос вычислений в WebAssembly. Упрощенно говоря это значит написать требуемый код на C++ или его аналогах.
AssemblyScript решает проблему "
Для большинства проектов это решение будет over-engineering, но там где есть CPU intensive задачи я рекомендую это решение.
#typescript
Универсальный способ оптимизации производительности для JavaScript разработчика это перенос вычислений в WebAssembly. Упрощенно говоря это значит написать требуемый код на C++ или его аналогах.
AssemblyScript решает проблему "
мне нужен WASM, но нет ресурсов чтобы изучить новый язык". По сути AssemblyScript это тот же TypeScript с WASM типами и уже настроенным компилятором. Это решение хорошо тем, что подойдет и для Node.js, и для браузера.Для большинства проектов это решение будет over-engineering, но там где есть CPU intensive задачи я рекомендую это решение.