
Сила написания кода и его место в ответе на извечный вопрос: «TypeScript или JavaScript?»
JavaScript или TypeScript? Хотя ответом почти всегда будет TypeScript, написание JavaScript имеет свое место.
TypeError: Cannot read property 'typeScriptOrJavaScript' of undefined
Классическая ошибка. Некоторые даже могут сказать, что это обряд посвящения.
Каждый разработчик сталкивался с этим, и большинство разработчиков теперь оснащены как опытом, так и инструментами, позволяющими избежать таких глупых маленьких ошибок. Один из этих инструментов? TypeScript.
Для невольного новичка эта ошибка возникает из-за случайного (или намеренного, если вы мазохист) предположения, что переменная undefined является объектом, и попытки доступа к свойству этого неопределенного значения.
TypeScript в помощь
С TypeScript небольшие проблемы, подобные этой, могут быть обнаружены во время разработки, а это означает, что они никогда не увидят свет во время выполнения. Без изменений в приведенном выше фрагменте TypeScript предупредил бы разработчика о том, что код недействителен, указав, что именно нужно изменить, в данном случае: обеспечение того, чтобы undefinedVariable имело свойство с именем nonExistentProperty, или удаление недопустимой попытки доступа к свойству.
Запрещенное ключевое слово
В любом языке есть свой набор неправильных практик, и TypeScript не застрахован. Я видел, как новички, так и опытные разработчики прибегали к ключевому слову any, которое является универсальным типом в TypeScript. Это позволяет вам по существу перенести JavaScript на TypeScript, удалив статическую типизацию для переменной.
Когда сложная типизация становится проблемой, некоторые разработчики просто прибегают к any, но это противоречит цели TypeScript, удаляя красивую, строгую типизацию, которую обеспечивает TypeScript. Я лично использую ESLint, чтобы запретить any появляться где-либо в кодовых базах, над которыми я сотрудничаю, и я рекомендую вам сделать это.
TypeScript или JavaScript?
Это вопрос, который хочет знать каждый новичок. TypeScript может показаться препятствием для новичков, и он определенно более пугающий, чем его старшая сестра: JavaScript, но как только вы преодолеете относительно небольшую кривую обучения, преимущества окупятся.
Мне не терпится посоветовать кому-нибудь использовать JavaScript в любом проекте, даже если он хоть на унцию сложен. Статическая типизация TypeScript упрощает работу разработчика и сокращает время, затрачиваемое на отладку. Не говоря уже об упрощении совместной работы за счет применения лучших практик, что делает код более удобным и понятным.
Однако я бы солгал, если бы сказал, что написание сырого JavaScript неуместно.
Сила Писающего Кода
Писающий код — довольно неэлегантное название стиля кодирования, который часто приходится делать мне и другим разработчикам. Подобно тому, как вы встряхиваете свой велосипедный замок каждый раз, когда вы проезжаете мимо него, чтобы убедиться, что он не подвергается волшебному риску кражи, иногда мы, разработчики, хотели бы перепроверить, чтобы убедиться, что язык, с которым мы работаем, будет функционировать так, как мы ожидаем. .
Возможно, вы хотите быстро спланировать функцию, прежде чем вводить ее в библиотеку, протестировать встроенный метод, прежде чем использовать его в кодовой базе, может быть, вы просто пробуете что-то новое или вам просто нужно написать одноразовый скрипт, который вы больше никогда не притронемся.
Если в коде, который вы пишете, нет постоянства, сложности или сотрудничества, запишите его в одноразовый файл JavaScript или сеанс Quokka и на этом закончите. Поскольку кодовая база не живет, преимущества становятся менее ощутимыми и полезными. Если код недолговечен или вы просто что-то тестируете, просто запишите его в файл.
Заключение
Если код находится на контроле версий, вы сотрудничаете с другими, код сложен или он будет использоваться несколько раз, лучше всего использовать TypeScript и пожинать плоды, в противном случае не чувствуйте себя виноватым за то, что слили код в файл или реплика, к которым вы больше никогда не прикоснетесь!
Если вам понравился этот пост, проверьте меня в Твиттере, чтобы быть в курсе будущих сообщений! ❤️