fix the function name and the direction of assignability - #363
Merged
Conversation
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Первый пункт #348 — урок
25-types/40-assignability, названный в триаже. Issue целиком не закрывает: вычитка остальных уроков модулей25-types,30-classes,40-generics,50-objectsостаётся.Что чинится
Названное в issue:
f(false);, а функция в примере называетсяlen;Найденное рядом, в тех же трёх абзацах: направление присваиваемости описано наоборот.
Текст говорил: «присваиваемость — это проверка, что множество значений
xвходит в множество значенийy», и следом «Переменная типаxприсваивается переменной типаy, если множество значенийxвходит в множество значенийy». Ноxиy— это переменные из примера прямо над абзацем, и тамx = y, то есть приемник этоx. Правило, записанное через те же буквы, получилось перевёрнутым: по немуx = yтребовало быvalues(x) ⊆ values(y), тогда как компилятор проверяет обратное.Что показательно, собственный пример абзаца перевёрнутому правилу противоречит: «литеральный тип
'one'входит в множество значенийstring» — здесь источник это'one', приемникstring, и включение идёт от источника к приемнику.Оставлять это нельзя: урок ровно про то, как читать
Type X is not assignable to type Y, и направление здесь — единственное, что нужно унести из урока.Что стало
Правило сформулировано через источник и приемник, а разбор дан на обоих случаях из примера — на присвоении
x = yи на вызовеlen(false). БуквыAиBв общей формулировке не пересекаются с именами из примера, поэтому её больше не прочитать как утверждение про конкретныеxиy.Примеры включения дополнены до компилируемых строк (
const s: string = 'one'противconst s: string = 10), чтобы «входит в множество» было видно на коде, а не только на словах.В en заодно заменены типографские кавычки
‘one’на`'one'`— в остальном уроке литералы набраны кодом.Проверка
make description-lintиmake schema-validateзелёные. Задание и решение урока не тронуты — правка только в теории.Что осталось за рамками этого PR
Остальной объём #348 — десятки уроков в четырёх модулях, там нужна сплошная редакторская вычитка, а не точечные правки. Этот PR берёт единственный пункт, который в issue назван конкретно и проверяем.