В TypeScript слово class объявляет 2 вещи:
1. Способ создания объекта через new.
2. Тип, который является по сути интерфейсом.
Поэтому можно писать:
class C { }
interface I extends C {
x: number;
}
В вашем случае все типы структурно эквиваленты:
class C { }
interface I extends C { }
class D implements I { }
function f(o: {});
function f(d: D);
function f(i: I);
function f(c: C): void { // {} = D = I = C
}
Стоит добавить, что в отличии от npm, в yarn важно использовать ту же самую версию т.к. при разных версиях yarn с одинаковым lock файлом мы получим разный результат.
Интересно.
Очень жаль, что теперь недостаточно только лок файла для воспроизведения.
char в .NET 16-бит.
UTF-8 на сегодня представлен как Span<byte>.
Не осилили ?
https://www.expertreviews.co.uk/software/1402483/google-gives-up-on-the-idea-of-vertical-tabs-in-chrome
В Edge, Firefox уже давно и очень удобно.
О каком привыкании идёт речь непонятно:)
Кому не надо, тот не будет этим пользоваться.
1. Способ создания объекта через new.
2. Тип, который является по сути интерфейсом.
Поэтому можно писать:
В вашем случае все типы структурно эквиваленты:
Так и есть. Банальные баги, открытые несколько лет назад так и не чинят причиняя боль тем, кто пишет код работающий одновременно везде.
this !== window 8 лет
https://bugzilla.mozilla.org/show_bug.cgi?id=1208775
Тоже на него перешёл потом как был наиболее похожим и бесплатным.
https://endjin.com/blog/2022/02/csharp-11-preview-parameter-null-checking
Хотели !! в C# 11, хорошо, что одумались :)
Так вы имя переменной дайте нормальное и сразу будет короче.
Так уже можно: `x is >= 1 and < 4`
auto здесь совсем не при чём.
Такое различие между языками.
Кстати , в C23 теперь тоже появится auto с выводом типа.
Как раз именно с минорными, версия должна дать абсолютно такой же. Но это не проблема если у нас есть докер, есть же ? ;)
На практике обычно проблем нет, но могут вылезти в непредвиденный момент.
Стоит добавить, что в отличии от npm, в yarn важно использовать ту же самую версию т.к. при разных версиях yarn с одинаковым lock файлом мы получим разный результат.
«за некоторыми исключениями, о которых вам пока не нужно беспокоиться.»
Поэтому многие сидят на Java 8 до сих пор :)
Есть расширение https://chrome.google.com/webstore/detail/enable-local-file-links/nikfmfgobenbhmocjaaboihbeocackld?hl=en
Здесь есть объяснение: https://learn.microsoft.com/en-au/archive/blogs/ericlippert/asynchrony-in-c-5-part-six-whither-async
По итогу обсуждения достоинства в ключевом слове перевесили недостатки его отсутствия.
Также нужно превратить предупреждения в ошибки.
https://gist.github.com/cezarypiatek/f56c671c6f634aab285a88095488c1de
Ещё одна статья в копилку: https://habr.com/ru/post/697632/
Моё дело показать похожую идею.
Чтобы сделать язык, который умеет расширяться за счёт макросов как Nemerle, нужно вложить немало времени и сил.
А сам синтаксис может быть каким-угодно.