All streams
Search
Write a publication
Pull to refresh
55
0
maeris @maeris

User

Send message

ограничении применения any до конкретных случаев, в которых тип действительно неизвестен

Для этого есть unknown. Тип any это легаси, потому что он не top и не bottom тип в решётке типов, а вообще непойми что.

будет нелишним добавлять утверждения типов или тайп гарды

Вместе с unknown это так же чудесно работает.

Тип Object является встроенной возможностью TypeScript, позволяющей ссылаться на базовый тип объекта

Именно, он ссылается на базовый тип объекта, а для всех описанных ниже примеров нужен тип {}: просто тип объекта. Подробнее тут.

let obj: Object = { name: "John", age: 30 };

И зачем мы тут потеряли информацию про типы полей?

let str: string = obj.name; // валидно

Ну попробуйте тут тип явно не указывать, ага.

function divide(numerator: number, denominator: number): number | never

number | never = number, потому что это ноль для типа-суммы, и это совершенно абсурдное использование never. Он будет иметь смысл, когда нужно написать тип значения, но нет ни одного пути исполнения кода, приводящего к наличию этого значения. Например, если функция всегда throw, или в default у switch, где остальные case разобрали все случаи.

Enums – это перечисления, позволяющие определять в TS набор именованных констант. С их помощью можно писать более читаемый и обслуживаемый код

Начиная с TS 5.0 enum ничем не отличается от union, во многом из-за их крайне нетривиального поведения в текущих версиях языка.

Пространства имён позволяют организовывать код и избегать коллизий в именовании его элементов

Пространства имён нужны для того, чтобы типизировать легаси конструкции с помощью declaration merging. Для организации кода они подходят существенно хуже модулей, и в реальном коде на TS практически не используются.

Лучшая практика 16: type guards

Отвратительная это практика, как as и any. Type guard говорит компилятору "когда я тут true верну, тут будет такой тип, зуб даю". Вся типобезопасность остаётся на совести программиста. Для типизации какого-то грязного старого кода на JS их использовать можно, а в повседневной практике категорически нельзя, нужно переписывать код. В качестве правила левого буравчика: возьмите disjoint union (он же tagged union, он же ADT).

К примеру, с помощью infer можно создать более точный тип для функции, возвращающей массив конкретного типа:

declare const f: <T,>(t: T[]) => T;

Смотри, мам, никаких infer! Conditional types нужны для типизации грязного старого кода на JS. Естественно, это не "лучшая практика".

type ReturnType = T extends (…args: any[]) => infer R ? R : any;

Во-первых, такой тип давно в язык добавили, и вы таким примером получите ошибку. Во-вторых, при переводе неплохо бы не лажать с лигатурами в коде вроде вот этого эллипсиса, из-за которого он вдвойне не откомпилируется. В-третьих, см. предыдущий пункт.

Лучшая практика 21: декораторы

Которые не соответствуют стандарту до выхода ещё не вышедшей версии 5.0. Отличная рекомендация, давайте немедленно ими воспользуемся, чтобы через месяц выбросить код и начать писать заново.

Заключение

Пожалуйста, не переводите чушь. Это просто перечисление глав из документации.

Но в сливе его как раз нет, что заставляет подозревать, что слив сделали таки после продажи.

Это монорепозиторий, куда доступ был буквально у всех. Причём это не первая его утечка.

А я думал, что он там вращается в связи с тем, что ему при жизни и в страшном сне такое не снилось.

Подскажу, в теплообменники. Внезапно так оказывается, что инженеры химкомбинатов слышали про термодинамику тоже, и потери тепла воспринимают серьёзно, потому что это ещё и потери денег.

Углекислый газ уходит в атмосферу на производствах, к примеру, цемента, а вот как это должно происходить в процессах Габера, Клауса или Монсанто, честно говоря, ума не приложу. Крайне ограниченное количество полезных реакций производят углекислый газ в качестве побочного продукта. Польза от реакций падает при выделении углекислого газа потому, что это потеря массы продукта. При малейшей возможности выбирают те реакции, где ничего никуда не выделяется.

А Солнце вы видели? Оно на поверхность планеты столько тепла наливает, что мы бы градирнями АЭС столько никогда не смогли вывести. Глобальное потепление-то возникает из-за ограничения проводимости атмосферы в ИК-диапазоне, а не из-за того, что у нас что-то тут на планете тепло излучает.

И внезапно так оказывается, что метан очень хорошо отражает это тепло обратно на поверхность, долго в атмосфере держится, и ещё и коровами производится!

Честно говоря, даже не понимаю, вы сейчас шутите или нет.

Результат неожиданный, но железно воспроизводимый. var, быстрее.

Вполне ожиданный: varу не нужно создавать скоуп, в котором будут объявлены переменные, потому что он уже есть. Поэтому, да, во вложенных циклах высокопроизводительного кода лучше всё-таки сделать var.

Зато в 2023 написали!

Ну вообще-то меньше способствуют, потому что у химпрома в реакторе КПД обычно выше по совершенно тривиальным термодинамическим причинам: достижимые температуры реакций выше. А если ещё и АЭС использовать для энергоснабжения, так и вовсе выбросов нет.

А я подумал, что это экран испачкался.

У людей, кстати, тоже так себе разрешение у сетчатки. Там всё интересное на макуле происходит, а вокруг какой-то треш с разрешением один пиксель на метр. Чтобы нормально глазами видеть, используется целая куча хаков: микросаккады + суперрезолюшн, аттеншн на движение и полосатое и вот это вот всё.

Картинки с высоким разрешением мы на компьютере делаем, потому что не знаем, куда будет смотреть человек на экране. Если бы знали, можно было бы, наверное, раз в десять уменьшить количество рендеринга в играх.

Нейросетки, которые смогут с тем же качеством обрабатывать картинку с высоким разрешением, будут иметь сверхчеловеческое зрение. В каком-то смысле они уже имеют: человек так же быстро всех котиков на фото не найдёт, потому что ему глазами нужно будет туда-сюда двигать.

Полагаете, судам и службистам будет важно, где у российского хостера находится ДЦ, к которому они хотят получить доступ? Довольно оптимистично.

Чего человека минусуете? Нормальный вопрос: им рассказали, или они рассказали. В оригинале статьи одно СМИ ссылается на другие, которые ссылаются на третьи, и от достоверности новости остаются одни сепульки.

А что если у человека вируснёй угнали доступ к онлайн-банку, и пользуются его счётом в качестве дропа? А если на вокзале подошёл чувак и говорит "банкомата нигде нет, наличка нужна, давай я тебе на счёт переведу, а ты мне наличкой отдашь"? Там достаточно есть схем, чтобы отмывать бабло через счета наивных непричастных людей.

Когда фигачишь молотком по пальцам, эндорфинов как раз больше выделяется, чтобы боль побороть.

(Тем не менее, не рекомендую.)

Да вот в РФ тоже был случай, когда парень для нанесения плёнок на солнечные батареи в домашней лаборатории заказал из Китая несколько литров растворителя, который по неудачному стечению обстоятельств ещё используется как прекурсор для бутиратов, и присел.

В кодексах тоже есть ошибки. С точки зрения морали за его проступок достаточно было бы сурово погрозить пальцем.

Всё-таки 20 лет назад время было попроще. Сейчас бы с него три шкуры через суд содрали за это электричество, а может ещё и посадили за неправомерный доступ. Всё-таки это грустно.

У домашних животных тоже есть предел восприятия. Можно шуметь на частоте выше.

А в комментариях на Hacker News ребята из Кении писали, что у них там средняя зарплата меньше $2 в час, и так-то никто не был против получить такую непыльную высокооплачиваемую работу. А теперь вот, значит, всё пропало. Был ли этот комментарий проплачен компанией-посредником -- большой вопрос.

Но мне кажется, право осуждать в этой ситуации есть только у людей, которые могут предложить какое-то другое решение проблеме кенийской нищеты, а не просто усугублять её, устрашая заинтересованные в дешёвом труде компании PR-последствиями.

Information

Rating
Does not participate
Registered
Activity