История изменений
Исправление rtxtxtrx, (текущая версия) :
ты опять бредишь. в скриптовых языках одна строка, одно число (и разницы между int и float нет так как их можно складывать), булев, null(nil, None). скалярных типов мало. не нужно гадать какой разновидности число или строка. + код пишут все-таки в ide. я не знаю как проще объяснить. отсутствие указания типов при инициализации не является проблемой, их бывает сложно в функциях из контекста понять, поэтому сначала были придуманы всякие jsdoc,phpdoc,pydoc, а потом тайпхинты.
# тут ясно что email строка
# так же ясно, что функция вернет булев
def is_email(email): ...
# тут ясно что функция обрежет строку и вернет новую,
# что s(tring) - это строка, l(ength) - длина
def cut(s, l): ...
# тут ясно что host строка, а port число, ведь иначе не бывает
def connect(host, port): ...
# а если же есть неопределенность, то можно использовать тайпхинты для подсказки редактору
def decode(input: str) -> bytes: ...
В js нету тайпхинтов, но можно их через комментари указать. IDE их парсят:
/**
* Обрезает строку до указанной длины.
*
* @param {string} str - Исходная строка, которую нужно обрезать.
* @param {number} maxLength - Максимальная длина строки после обрезания.
* @param {boolean} [addEllipsis=false] - Добавлять ли многоточие в конце обрезанной строки.
* @returns {string} - Обрезаная строка.
*
* @example
* // Обрезаем строку до 10 символов
* const truncated = truncateString('Это очень длинная строка', 10);
* console.log(truncated); // Вывод: 'Это очень '
*
* @example
* // Обрезаем строку до 10 символов и добавляем многоточие
* const truncatedWithEllipsis = truncateString('Это очень длинная строка', 10, true);
* console.log(truncatedWithEllipsis); // Вывод: 'Это очень…'
*/
function truncateString(str, maxLength, addEllipsis = false) {
if (str.length <= maxLength) {
return str;
}
let truncated = str.slice(0, maxLength);
if (addEllipsis) {
truncated += '…';
}
return truncated;
}
Но для JS отсутствие тайпхинтов не является проблемой, так как он в отличии от Python не является универсальным языком, а лишь обраьатывает формы на странице, где значения полей почти всегда СТРОКИ, которых ВСЕГО ОДИН ТИП (точно так же и в баше все строки). Поэтому и TypeScript не нужен.
Ты приучаешь себя писать код, который не нужно документировать (самодокументируемый код, ага), а потом смотришь на тупизированых как на говно с их кучей закорючек и проблемами порожденными их языками. Удел скрпитобогов — быть непонятыми.
Исходная версия rtxtxtrx, :
ты опять бредишь. в скриптовых языках одна строка, одно число (и разницы между int и float нет так как их можно складывать), булев, null(nil, None). скалярных типов мало. не нужно гадать какой разновидности число или строка. + код пишут все-таки в ide. я не знаю как проще объяснить. отсутствие указания типов при инициализации не является проблемой, их бывает сложно в функциях из контекста понять, поэтому сначала были придуманы всякие jsdoc,phpdoc,pydoc, а потом тайпхинты.
# тут ясно что email строка
# так же ясно, что функция вернет булев
def is_email(email): ...
# тут ясно что функция обрежет строку и вернет новую,
# что s(tring) - это строка, l(ength) - длина
def cut(s, l): ...
# тут ясно что host строка, а port число, ведь иначе не бывает
def connect(host, port): ...
# а если же есть неопределенность, то можно использовать тайпхинты для подсказки редактору
def decode(input: str) -> bytes: ...
В js нету тайпхинтов, но можно их через комментари указать. IDE их парсят:
/**
* Обрезает строку до указанной длины.
*
* @param {string} str - Исходная строка, которую нужно обрезать.
* @param {number} maxLength - Максимальная длина строки после обрезания.
* @param {boolean} [addEllipsis=false] - Добавлять ли многоточие в конце обрезанной строки.
* @returns {string} - Обрезаная строка.
*
* @example
* // Обрезаем строку до 10 символов
* const truncated = truncateString('Это очень длинная строка', 10);
* console.log(truncated); // Вывод: 'Это очень '
*
* @example
* // Обрезаем строку до 10 символов и добавляем многоточие
* const truncatedWithEllipsis = truncateString('Это очень длинная строка', 10, true);
* console.log(truncatedWithEllipsis); // Вывод: 'Это очень…'
*/
function truncateString(str, maxLength, addEllipsis = false) {
if (str.length <= maxLength) {
return str;
}
let truncated = str.slice(0, maxLength);
if (addEllipsis) {
truncated += '…';
}
return truncated;
}
Но для JS отсутствие тайпхинтов не является проблемой, так как он в отличии от Python не является универсальным языком, а лишь обраьатывает формы на странице, где значения полей почти всегда СТРОКИ, которых ВСЕГО ОДИН ТИП