Size: a a a

TypeScript — русскоговорящее сообщество

2020 April 15

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Ладно, посмотрим кто победит. Буду себя заранее неправым считать
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Жрать кактус тоже выбор
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Андрей Звёздочка
Да, но ты знаешь на что нужно проверять
Да идея понятна. Просто это все равно из области удобства, а не тайпчекинга. Тайпчекинга никакого это не дает
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Да идея понятна. Просто это все равно из области удобства, а не тайпчекинга. Тайпчекинга никакого это не дает
Как думаешь почему flow проиграл ts?
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Потому что у Flow дохерища багов
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Потому что у Flow дохерища багов
Нет) Потому что flow пользоваться невозможно из-за его неудобства. Он тормозит, хреново интегрируется с окружением и т.д. Но тайпчек лучше чем у ts
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Просто из-за удобства люди выбрали ts
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Я с ним долго работал и все, кроме багов меня устраивало
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Я с ним долго работал и все, кроме багов меня устраивало
У меня тоже так
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
В итоге сижу на тс и жру unsound
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Мне на ТС норм в итоге оказалось
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
А unsound, ну так в общем то все unsound. И Flow unsound, и ТС, и Hegel тоже будет unsound
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Такова реальность
источник

u

uid in TypeScript — русскоговорящее сообщество
Alexander Shushunov
Всем привет. Начал копать TS. Может кто подскажет, почему во втором варианте нет ошибки?
const o: { f: number } = {f: 44, d: 4}
const po: Promise<{ f: number }> = Promise.resolve({ f: 44, d: 4 })


https://www.typescriptlang.org/play/index.html#code/MYewdgzgLgBCBcMDeMBmiwFcC2AjApgE4wC+MAvMujACw0A0MAJojSQFCiSwAOCMABUIhsASwj4APCmpY8RUgD4Kg4WIkA6QvgggANgDd8AChmsGzVqQCUQA
В TS объект расширяем — лишние (не описанные в типе) поля не ломают проверку типа (play, строка 2).
Но для литералов объектов (и только для них) есть дополнительная проверка на лишние свойства, заставляющая типизировать все свойства, указанные в литерале: Excess property checking.
EPC работает при присваивании литерала переменной (поэтому ругается на лишние свойство d в первом варианте, строка 4), и при использовании литерала, как аргумента функции — это как раз второй вариант, но ошибки в нём нет, так как функция Promise.resolve без указания типа-аргумента принимает любое значение (строка 5). Если тип-аргумент указать, EPC сработает и здесь (строка 11).
источник

EK

Eugene Kalinin in TypeScript — русскоговорящее сообщество
Переслано от Michael
The Art of Readable Code
Simple and Practical Techniques for Writing Better Code
by Trevor Foucher, Dustin Boswell
источник

AS

Alexander Shushunov in TypeScript — русскоговорящее сообщество
uid
В TS объект расширяем — лишние (не описанные в типе) поля не ломают проверку типа (play, строка 2).
Но для литералов объектов (и только для них) есть дополнительная проверка на лишние свойства, заставляющая типизировать все свойства, указанные в литерале: Excess property checking.
EPC работает при присваивании литерала переменной (поэтому ругается на лишние свойство d в первом варианте, строка 4), и при использовании литерала, как аргумента функции — это как раз второй вариант, но ошибки в нём нет, так как функция Promise.resolve без указания типа-аргумента принимает любое значение (строка 5). Если тип-аргумент указать, EPC сработает и здесь (строка 11).
Спасибо
источник

В

Владимир in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
а чего не "extends": ["codelyzer"], ?
Проблему решил переустановкой codelyzer, спасибо за помощь.  :)
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Ну строго говоря Promise<T, E | unknown> это тоже самое что Promise<T, unknown>
вспомнил в чем разница.
когда указываешь result | $Throws(Error | TypeError) гегель проверит, что в теле функции действительно бросается Error и TypeError, также проверит, функции которые вызываются
источник

G

G in TypeScript — русскоговорящее сообщество
🦉 ⁣
вспомнил в чем разница.
когда указываешь result | $Throws(Error | TypeError) гегель проверит, что в теле функции действительно бросается Error и TypeError, также проверит, функции которые вызываются
Гегель?
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
> гегель проверит, что в теле функции действительно бросается Error и TypeError

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