Явное привидение типов в JS
Я недавно начал изучать JS. До этого учил python.
В python были такие строчки name_var: int или name_var: str. Эти строки говорят нам, что name_var имеет тип данных int или str соответственно. Или же в PostgreSQL name_var::int или name_var::text. А что же с JS? Как мне указать что я ожидаю в функции именно строковое значение. Или как я буду сравнивнивать переменные как я делал это в python благодаря функции isinstance().
Ответы (2 шт):
В JS никак, welcome to динамическая типизация. В TypeScript можно.
Здесь уже спрашивали:
Как задать тип переменной в js?
В самом JavaScript нету такого понятия как строгая типизация, проверить тип можно через typeof(variable) === "string" для простых переменных или objectVar istanceof Array для объектов.
function MyClass(name) {
if (!(this instanceof MyClass)) throw new Error("Sorry not an class");
if (typeof(name) !== "string") throw new Error("First param must be string");
this.name = name;
}
MyClass.prototype.getName = function() {
return this.name;
}
Так-же есть некая надстройка над JS, используется очень часто в крупных проектах и активно поддерживается JavaScript сообществом - TypeScript https://www.typescriptlang.org/ .
function Hello(name: string): number {
console.log("Hello ", name);
return 1;
}