typeof (также typeOf или TypeOf) — это оператор, предоставляемый некоторыми языками программирования для определения типа данных переменной. Это полезно для создания программ, которые должны принимать несколько типов данных без указания самого типа.
В языках, которые поддерживают полиморфизм и преобразование типов, может иметь два варианта реализации. В некоторых языках, таких как Visual Basic[1], оператор typeof возвращает динамический тип объекта. В таких языках этот оператор получает информацию в runtime. В других языках, таких как C#[2] или D[3] и, в некоторой степени, в Си (как часть нестандартного расширения),[4][5] оператор typeof возвращает статический тип операнда. Эти языки могут иметь другие операторы для получения информации в runtime, такие как typeid.
Примеры
В нестандартном (GNU) расширении языка программирования Си, typeof может быть использован, например, для определения макроса max:
# define max(a,b) ({ typeof (a) _a = (a); typeof (b) _b = (b); _a > _b ? _a : _b; })
В C#:
// Возвращает является ли объект целым числом
public static bool IsInteger(object o) {
return ( o.GetType() == typeof(int) );
}
В JavaScript:
function isNumber(n)
{
return ( typeof n === 'number' );
}
В TypeScript:[6]
function (param: typeof existingObject) { ... }
let newObject: typeof existingObject;
См. также
Примечания