<: string, 'b' <: string и так далее, но только 'b' : 'b' - это ли не значит, что string шире, чем `'b'?
У { foo: string } инхабитантов больше, чем у { foo: string, bar: boolean }
A extends B значит, что A <: B, т.е. A уже, чем B (или равен).
пытаюсь все же понять. >Если 'a' <: string, 'b' <: string и так далее, но только 'b' : 'b' - это ли не значит, что string шире, чем `'b'? с вот этим полностью соглашусь - интуитивно кажется, что string шире "b", т.к. больше значений являются string, чем значений, которые являются "b" >У { foo: string } инхабитантов больше, чем у { foo: string, bar: boolean } а вот тут не могу согласиться. { foo: string } ведь включает только значения, у которых есть только foo и нет других полей. Да, тип { foo: string, bar: boolean} расширяет { foo: string}, но нельзя сказать, что значение { foo: "something", bar: false } является экземпляром типа { foo: string }
Обсуждают сегодня