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 Sergey Sova
вот так всё ловит
Forwarded from Sergey Sova
а флоу первоначальный вариант сразу же отлавливает и всё ок
Forwarded from Anton
я на самом деле тут сам с дженериков плевался, раз пошла такая пьянка

допустим у нас есть функция которая принимает класс и возвращает инстанс этого класса
const foo = <S>(arg: S) => S

Эти типы неправильные, потому что когда мы вызовем эту функцию скажем foo(MyClass) => new MyClass() тайпскрипт ее запишет как <S>(arg: S) => typeof S

при этом написать скажем const foo = <S>(arg: S) => InstanceOf<S> по какой то причине не сработает. решением тут будет написать const foo = <S>(arg: { new: (props) => S}) => S

что в приинципе довольно логично, но чудовищно неочевидно, не покрыто тайпскриптовскими доками примерно никак и непонятно почему инстансоф не работает
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
для тс аттрибут и геттер синонимичны