DEV_EASY_NOTES Telegram 376
Я в универе зачитывался серий книг "Игра Эндера". Потрясающая фантастика, и мне очень жаль, что экранизировали только первую книгу. В книге как и в фильме есть цитата главного героя: "вместе с настоящим пониманием, позволяющим победить врага, приходит любовь к нему…"

Последнюю неделю я пишу код на typescript и мне начинается нравиться этот язык. Я всю жизнь писал на java/kotlin языках со строгой типизацией и всегда казалось, что в этих языках уже есть все, что только нужно и сложно придумать что-то еще. Я всегда держался подальше от технологий фронтенда. В этом проблема, когда долго сидишь на одной платформе, оказываешься в пузыре, появляется ложное ощущение, что ты все знаешь.

Typescript показал, что существует много концепций, о которых я даже не задумывался. И речь не только про структурную типизацию. Выразительность TypeScript позволяет делать вещи, которые казались невозможными. Можно не просто указать какое значение вернет функция, можно описать что она будет возвращать в каждом конкретном случае.

Вот например:

type ParseType = "number" | "boolean" | "string";

function parse(
input: string,
type: ParseType
): number | boolean | string {
switch (type) {
case "number":
return parseFloat(input);
case "boolean":
return input === "true";
case "string":
return input;
default:
throw new Error(`Unknown type: ${type}`);
}
}

typeof parse("42", "number") // number
typeof parse("42", "boolean") // boolean
typeof parse("42", "string")) // string


Вы можете себе в kotlin представить функцию, которая возвращает разные типы в зависимости от аргумента? Не наследника какого-нибудь sealed класса, а именно что совершенно другой тип.

Эта же мощность мне кажется является и недостатком Typescript. В kotlin начинающего разработчика система типов сдерживает, в Typescript же напротив, позволяет слишком многое.
1🔥13👎65🤡2



tgoop.com/dev_easy_notes/376
Create:
Last Update:

Я в универе зачитывался серий книг "Игра Эндера". Потрясающая фантастика, и мне очень жаль, что экранизировали только первую книгу. В книге как и в фильме есть цитата главного героя: "вместе с настоящим пониманием, позволяющим победить врага, приходит любовь к нему…"

Последнюю неделю я пишу код на typescript и мне начинается нравиться этот язык. Я всю жизнь писал на java/kotlin языках со строгой типизацией и всегда казалось, что в этих языках уже есть все, что только нужно и сложно придумать что-то еще. Я всегда держался подальше от технологий фронтенда. В этом проблема, когда долго сидишь на одной платформе, оказываешься в пузыре, появляется ложное ощущение, что ты все знаешь.

Typescript показал, что существует много концепций, о которых я даже не задумывался. И речь не только про структурную типизацию. Выразительность TypeScript позволяет делать вещи, которые казались невозможными. Можно не просто указать какое значение вернет функция, можно описать что она будет возвращать в каждом конкретном случае.

Вот например:


type ParseType = "number" | "boolean" | "string";

function parse(
input: string,
type: ParseType
): number | boolean | string {
switch (type) {
case "number":
return parseFloat(input);
case "boolean":
return input === "true";
case "string":
return input;
default:
throw new Error(`Unknown type: ${type}`);
}
}

typeof parse("42", "number") // number
typeof parse("42", "boolean") // boolean
typeof parse("42", "string")) // string


Вы можете себе в kotlin представить функцию, которая возвращает разные типы в зависимости от аргумента? Не наследника какого-нибудь sealed класса, а именно что совершенно другой тип.

Эта же мощность мне кажется является и недостатком Typescript. В kotlin начинающего разработчика система типов сдерживает, в Typescript же напротив, позволяет слишком многое.

BY Dev Easy Notes


Share with your friend now:
tgoop.com/dev_easy_notes/376

View MORE
Open in Telegram


Telegram News

Date: |

In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. Write your hashtags in the language of your target audience. To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be:
from us


Telegram Dev Easy Notes
FROM American