如何在 TypeScript 中使用 typeof 运算符?

typescriptserver side programmingprogramming

在 TypeScript 中,typeof 是检查变量或标识符类型的最有用的运算符和关键字之一。然而,TypeScript 是一种严格类型语言。因此,我们需要在定义标识符本身时定义变量或对象的类型。不过,有时我们仍然需要检查变量的类型。

例如,我们通过表单从用户那里获取数据,并使用 TypeScript 处理这些数据。然后,我们必须验证数据并执行一些数据库操作。此外,在 TypeScript 中,标识符可以有多种类型。因此,使用 typeof 运算符,我们可以在初始化标识符后检查其类型。

语法

以下语法演示了如何将 typeof 运算符与标识符结合使用。

let type = typeof <variable>

参数

  • 变量 - 它是一个标识符,我们需要检查其类型。

返回值

它根据 typeof 运算符操作数的数据类型返回一个字符串。

示例 1

在此示例中,我们将 typeof 运算符用于字符串、数字、布尔值和未定义变量。此外,我们还将 typeof 运算符用于包含 null 作为值的变量。

在输出中,我们可以看到它返回表示标识符类型的字符串。对于 null_value1 标识符,typeof 运算符返回对象。

// 定义特定类型的变量并检查其类型。
let str1: string = "TutorialsPoint";
console.log(typeof str1);
let num1: number = 32;
console.log(typeof num1);
let bool1: boolean = true;
console.log(typeof bool1);
let un_defined;
console.log(typeof un_defined);
let null_value1 = null;
console.log(typeof null_value1);

编译后,它将生成以下 JavaScript 代码 -

// 定义特定类型的变量并检查其类型。
var str1 = "TutorialsPoint";
console.log(typeof str1);
var num1 = 32;
console.log(typeof num1);
var bool1 = true;
console.log(typeof bool1);
var un_defined;
console.log(typeof un_defined);
var null_value1 = null;
console.log(typeof null_value1);

输出

上述代码将产生以下输出 -

string
number
boolean
undefined
object

示例 2

在下面的示例中,我们创建了一个包含一些键值对的对象、一个返回数值的函数以及一个包含不同值的数字数组。

此外,我们使用 typeof 运算符检查所有对象的类型。typeof 运算符返回对象的"object"字符串、函数的"function"字符串以及数组的"object"字符串(因为数组是对象的实例)。

// 将 typeof 运算符用于对象、函数和数组。
let demo_obj = {
   prop: "value",
};
console.log(typeof demo_obj);
function func() {
   let a = 10 + 20;
   return a;
}
console.log(typeof func);
let array: Array<number> = [4, 23, 212, 2123, 323, 3];
console.log(typeof array);

编译后,它将生成以下 JavaScript 代码 -

// 对对象、函数和数组使用 typeof 运算符。
var demo_obj = {
   prop: "value"
};
console.log(typeof demo_obj);
function func() {
   var a = 10 + 20;
   return a;
}
console.log(typeof func);
var array = [4, 23, 212, 2123, 323, 3];
console.log(typeof array);

输出

上述代码将产生以下输出 -

object
function
object

示例 3

在此示例中,我们使用 typeof 运算符检查了 NaN 关键字的类型,该运算符返回"number"字符串。负无穷大的类型也是一个数字。PI 是 Math 类的属性,该类包含数字值。因此,typeof 运算符会为 Math.PI 属性返回"number"。

pow() 是 Math 库函数,用于计算任意数字的幂。因此,typeof 运算符会为 Math.pow() 方法返回"function"。

// 将 typeof 运算符用于 NaN、无穷大、库方法和成员。
let NaN_type = NaN;
console.log(typeof NaN_type);
let infi = -Infinity;
console.log(typeof infi);
let pI = Math.PI;
console.log(typeof pI);
let pow = Math.pow;
console.log(typeof pow);

编译后,它将生成以下 JavaScript 代码 -

// 将 typeof 运算符与 NaN、无穷大、库方法和成员一起使用。
var NaN_type = NaN;
console.log(typeof NaN_type);
var infi = -Infinity;
console.log(typeof infi);
var pI = Math.PI;
console.log(typeof pI);
var pow = Math.pow;
console.log(typeof pow);

输出

上述代码将产生以下输出 -

number
number
number
function

示例 4

在此示例中,我们使用 typeof 运算符获取变量 1 的类型,并定义与变量 1 类型相同的变量 2。此外,我们使用类型别名存储变量 3 的类型。名为 type1 的类型包含变量 3 的类型,即字符串。

之后,我们使用 type1 定义变量 4 的类型。在输出中,用户可以观察到变量 4 的类型与变量 3 相同。

// 将变量 1 定义为数字类型
var variable1: number = 10;

// 将变量 2 定义为与变量 1 类型相同的变量
let variable2: typeof variable1 = 20;
console.log(typeof variable2);

// 变量 3 为字符串类型
var variable3: string = "Hello!";

// 使用类型别名定义与变量 3 相同的类型
type type1 = typeofvariable3;

// 定义名为 type1 的变量 4
let variable4: type1 = "Hi";
console.log(typeof variable4);

编译后,它将生成以下 JavaScript 代码 -

// 定义变量 1 为数字类型
var var var 1 = 10;

// 将变量 2 定义为与变量 1 相同的类型
var var var 2 = 20;

console.log(typeof var 2);

// 变量 3 为字符串类型
var var var 3 = "Hello!";

// 定义变量 4 为名为 type1 的类型
var var var 4 = "Hi";
console.log(typeof var 4);

输出

上述代码将生成以下输出 -

number
string

在本教程中,我们学习了在 TypeScript 中使用 typeof 运算符。通过各种示例,我们了解了 typeof 运算符如何处理不同的数据类型。如果我们使用构造函数创建数字、布尔值或字符串变量,则 typeof 运算符将返回"对象"作为其类型。


相关文章