В язык JavaScript предложено добавить синтаксис с информацией о типах
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Компании Microsoft, Igalia и Bloomberg выступили с инициативой включения в спецификацию JavaScript синтаксиса для явного определения типов, похожего на синтаксис, применяемый в языке TypeScript. В настоящее время прототип изменений, предложенный для включения в стандарт ECMAScript, вынесен для предварительных обсуждений (Stage 0). На ближайшем мартовском заседании комитета TC39 планируется перейти на первую стадию рассмотрения предложения с привлечением экспертного сообщества из ECMA.
Наличие явно заданной информации о типах позволит избежать многих ошибок в процессе разработки, даст возможность задействовать дополнительные техники оптимизации, упростит отладку и сделает код более читаемым и простым для доработки и поддержки сторонними разработчиками. Поддержку типов предлагается реализовать в виде опциональной возможности - JavaScript-движки и runtime не поддерживающие проверку типов будут игнорировать аннотации с информацией о типах и обрабатывать код как раньше, воспринимая данные о типах как комментарии. Но инструменты для проверки типов смогут на основе доступной информации выявлять ошибки, связанные с некорректным использованием типов.
При этом в отличие от информации о типах, задаваемой при помощи аннотаций JSDoc, указываемых в форме комментариев, прямое указание типов непосредственно в конструкциях определения переменных сделает код более наглядным, понятным и простым для редактирования. Например, интегрированные среды разработки с поддержкой TypeScript смогут сразу подсвечивать ошибки в типизированном JavaScript-коде без дополнительных преобразований. Кроме того, встроенная поддержка типов даст возможность выполнять программы, написанные на типизированных диалектах JavaScript, таких как TypeScript и Flow, без транспиляции из одного языка в другой.
Из типов предлагается добавить "string", "number" и "boolean", которые можно будет использовать при определении переменных, параметров функций, элементов объектов, полей классов, типизированных массивов ("number[]"). Предлагается также обеспечить поддержку объединённых типов ("string | number") и дженериков.
let x: string;
function add(a: number, b: number) {
return a + b;
}
interface Person {
name: string;
age: number;
}
function foo<T>(x: T) {
return x;
}
function foo(x: string | number): string | number {
if (typeof x === number) {
return x + 1
}
else {
return x + "!"
}
}
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://devblogs.microsoft.com...)
- OpenNews: Предложен компилятор исходных текстов на языке TypeScript в машинный код
- OpenNews: Выпуск jsii 1.31, генератора кода C#, Go, Java и Python из TypeScript
- OpenNews: Доступен язык TypeScript 2.0, продвигаемый Microsoft в качестве дополнения к JavaScript
- OpenNews: Компания Microsoft представила TypeScript, новую открытую альтернативу JavaScript
Похожие новости:
- В Polkit добавлена поддержка JavaScript-движка Duktape
- Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly
- Web-фреймворк Pusa, переносящий логику JavaScript-фронтэнда на сторону сервера
- Применение невидимых unicode-символов для скрытия действий в JavaScript-коде
- Выпуск JavaScript-платформы Deno 1.16
- Выпуск серверной JavaScript-платформы Node.js 17.0
- Выпуск Brython 3.10, реализации языка Python для web-браузеров
- Предложен компилятор исходных текстов на языке TypeScript в машинный код
- Проект elk развивает компактный JavaScript-движок для микроконтроллеров
- Релиз шрифтового движка FreeType 2.11
Теги для поиска: #_typescript, #_javascript, #_type
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:45
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Компании Microsoft, Igalia и Bloomberg выступили с инициативой включения в спецификацию JavaScript синтаксиса для явного определения типов, похожего на синтаксис, применяемый в языке TypeScript. В настоящее время прототип изменений, предложенный для включения в стандарт ECMAScript, вынесен для предварительных обсуждений (Stage 0). На ближайшем мартовском заседании комитета TC39 планируется перейти на первую стадию рассмотрения предложения с привлечением экспертного сообщества из ECMA. Наличие явно заданной информации о типах позволит избежать многих ошибок в процессе разработки, даст возможность задействовать дополнительные техники оптимизации, упростит отладку и сделает код более читаемым и простым для доработки и поддержки сторонними разработчиками. Поддержку типов предлагается реализовать в виде опциональной возможности - JavaScript-движки и runtime не поддерживающие проверку типов будут игнорировать аннотации с информацией о типах и обрабатывать код как раньше, воспринимая данные о типах как комментарии. Но инструменты для проверки типов смогут на основе доступной информации выявлять ошибки, связанные с некорректным использованием типов. При этом в отличие от информации о типах, задаваемой при помощи аннотаций JSDoc, указываемых в форме комментариев, прямое указание типов непосредственно в конструкциях определения переменных сделает код более наглядным, понятным и простым для редактирования. Например, интегрированные среды разработки с поддержкой TypeScript смогут сразу подсвечивать ошибки в типизированном JavaScript-коде без дополнительных преобразований. Кроме того, встроенная поддержка типов даст возможность выполнять программы, написанные на типизированных диалектах JavaScript, таких как TypeScript и Flow, без транспиляции из одного языка в другой. Из типов предлагается добавить "string", "number" и "boolean", которые можно будет использовать при определении переменных, параметров функций, элементов объектов, полей классов, типизированных массивов ("number[]"). Предлагается также обеспечить поддержку объединённых типов ("string | number") и дженериков. let x: string;
function add(a: number, b: number) { return a + b; } interface Person { name: string; age: number; } function foo<T>(x: T) { return x; } function foo(x: string | number): string | number { if (typeof x === number) { return x + 1 } else { return x + "!" } } =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:45
Часовой пояс: UTC + 5