Typecript: typeof及instanceOf运算符介绍及实例

64 阅读2分钟

typeof操作符介绍

这个操作符用来获取一个指定变量类型的字符串。 这对开发人员在运行时了解对象的类型很有帮助。

typeof操作符的语法

typeof {operand}

参数操作数是作为自定义对象的原始数据类型提供的。可能的操作数值是变量、对象变量和字符串。

var msg = "Cloudhadoop";
console.log(typeof msg); // returns string as string format
var variableNumber =16;
console.log(typeof variableNumber); // returns number as string format 

var variableBoolean =true;

console.log(typeof variableBoolean); // returns boolean as string format

var variableNull =null;
console.log(typeof variableNull); // returns object as string format
var variableArray:string\[\]= \["1","2","3","4"\] 

console.log(typeof variableArray); // returns object as string format

let variableTyple: \[string, number\]= \["type operator", 20\]; 

console.log(typeof variableTyple); // returns object as string format

let variableAny: any = 4;

console.log(typeof variableAny); // returns number as string format

let variableUndefined: undefined = undefined;

console.log(typeof variableUndefined); // returns undefined as string format

  

enum Monday { Sunday, Monday, Tuesday }

let enumVariable: Monday = Monday.Sunday;

console.log(typeof enumVariable); // returns number as string format
  

var myFunction = new Function('123 + 6');

console.log(typeof myFunction) // outputs 'Function'

  

var currentDate = new Date();

console.log(typeof currentDate) // outputs 'object'

tyepscript instanceof操作符

instaneof操作符检查对象是否是另一种对象类型,并返回真。这种检查是在运行时进行的。这将在条件e中检查。

语法

name instanceof type

名称是对象名称,类型是对象类型。

instanceOf例子

在下面的代码中,日期对象的名称对类进行检查并返回。

任何变量对日期对象的返回为假

var todaysDate = new Date();
var variableNumber: any = 12;
console.log (todaysDate instanceof Date) // returns true
console.log (variableNumber instanceof Date) // returns false

类的实例 例子

如果用类检查未定义的类型,它返回false。

class ClassExample {}

let classes: Array = \[\];

console.log(classes\[0\]); // returns undefined

console.log(classes\[0\] instanceof ClassExample);

//returns false  undefiend is not of ClassExample 

classes.push(new ClassExample());

console.log(classes\[0\]); // outpus empty class

console.log(classes\[0\] instanceof ClassExample); // true

接口实例的例子

这是一个带有instanceof操作符的接口的使用例子。

interface InterfaceExample { }

var interfaceVariable: InterfaceExample = { };

console.log(interfaceVariable instanceof InterfaceExample); // compilation error

class ClassExample { }

var variableClass: ClassExample = { };

console.log(variableClass instanceof ClassExample); // reutnrs false and no compilation error

正如你所看到的,接口给出了 InterfaceExample "只是指一个类型,但在这里被当作一个值使用。