Why Typescript is bad
1.8K subscribers
72 photos
70 links
All topics related to TS

chat: @why_typescript_is_bad_chat
contact: @stuneak
Download Telegram
Forwarded from кана
interface A { a(): string };
interface B { b(): string };

function f(x: A | B): string {
if ("a" in x) {
return x.a();
} else {
return x.b();
}
}

const x = { a: 10, b() { return "hello"; } };
const y: B = x;
f(y);


то есть вот пример, когда тс говорит все ок, а все не ок
Forwarded from tоrіnіngеn
вот хороший с т.з. эвристик тс код, который падает в рантайме
Forwarded from Pavel Shakhov (pongo)
но если вместо геттера использовать метод, то тс начинает ругаться "возможно null".

т.е. это какой-то баг в тс с геттерами?
Forwarded from Alexey Kuzmichev
тут тайпскрипт полагает, что если мы попали внутрь if(x.a) то x.a не может быть null
Forwarded from Alexey Kuzmichev
так что наверное это можно считать багом с геттерами, потому что x.a мутируется в тот момент, когда ты получаешь от него значение
Forwarded from tоrіnіngеn
ну вообще по правде тс не знает о существовании геттеров
Forwarded from tоrіnіngеn
для тс аттрибут и геттер синонимичны
Теряем контекст при деструктуризации (@antonk52)

https://bit.ly/3eqdYGF
Forwarded from Артем Иванов
Отличный материал 👍
@ufocoder использование ReadOnly типов (иммутабельных данных) решает проблему с Type variance (т.е. можно безопасно присваивать подтип, не опасаясь, что его будут мутировать)
Но и ReadOnly в TS "сломано" из-за обратной совместимости 😢

Вот тут еще больше наездов (и обходных маневров) для TS