如何在TypeScript中使用typeof运算符?
在TypeScript中,typeof是最有用的运算符和关键字之一,用于检查变量或标识符的类型。然而,TypeScript是一种类型严格的语言。因此,我们在定义标识符本身时需要定义变量或对象的类型。尽管如此,有时我们仍然需要检查变量的类型。
例如,我们通过表单获取用户数据,并通过TypeScript处理它。然后,我们必须验证数据并执行一些数据库操作。此外,标识符在TypeScript中可以具有多种类型。因此,使用typeof运算符,我们可以在初始化标识符后检查其类型。
语法
下面的语法演示了如何使用带有标识符的typeof运算符。
let type = typeof <variable>
参数
变量 - 我们需要检查其类型的标识符。
返回值
它根据typeof运算符操作数的数据类型返回一个字符串。
示例1
在这个例子中,我们使用了带有字符串、数字、布尔值和未定义变量的typeof运算符。此外,我们还使用了包含null值的变量的typeof运算符。
在输出中,我们可以看到它返回表示标识符类型的字符串。对于null_value1标识符,typeof运算符返回object。
// Defining the variables of particular type and checking its type. 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代码:
// Defining the variables of particular type and checking its type. 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”字符串,因为数组是对象的实例。
// using the typeof operator with object, function, and array. 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代码:
// using the typeof operator with object, function, and array. 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”。
// using the typeof operator with NaN, infinity, library methods, and members. 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代码:
// using the typeof operator with NaN, infinity, library methods, and members. 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运算符获取variable1的类型,并定义与variable1类型相同的variable2。此外,我们还使用类型别名来存储variable3的类型。名为type1的类型包含variable3的类型,它是一个字符串。
之后,我们使用type1来定义variable4的类型。在输出中,用户可以看到variable4的类型与variable3相同。
// defining the variable1 of type number var variable1: number = 10; // To define the variable2 as of same type variable1 let variable2: typeof variable1 = 20; console.log(typeof variable2); // variable3 of string type var variable3: string = "Hello!"; // using the type alias to define the type of same type as variable3 type type1 = typeof variable3; // defining the variable4 of type named type1 let variable4: type1 = "Hi"; console.log(typeof variable4);
编译后,它将生成以下JavaScript代码:
// defining the variable1 of type number var variable1 = 10; // To define the variable2 as of same type variable1 var variable2 = 20; console.log(typeof variable2); // variable3 of string type var variable3 = "Hello!"; // defining the variable4 of type named type1 var variable4 = "Hi"; console.log(typeof variable4);
输出
以上代码将产生以下输出:
number string
在本教程中,我们学习了如何在TypeScript中使用typeof运算符。通过各种示例,我们了解了typeof运算符如何与不同的数据类型一起工作。如果我们使用构造函数创建数字、布尔值或字符串变量,则typeof运算符会将其类型返回为“object”。