2017-05-26 4 views
0

Wie überprüft man den Typ eines Objekts oder eines Arrays?Unterscheiden zwischen Objekttyp und Array-Typ in Typescript

Ich versuche, ein Objekt (und fügen Sie nur, wenn es Objekt ist) zu einigen Array hinzuzufügen.

//1. should add this OBJECT to the array 
var objToAdd11 : Object = {name: 'Zack', age: 24}; 
this.addObject(objToAdd11); 

//2. should throw errorbecause this is ARRAY, and we need only OBJECTS 
var objToAdd22 : Array = [{name: 'Zack', age: 24}]; 
this.addObject(objToAdd22); 

public addObject(obj: any) : void { 
    /*I need to check is obj parameter OBJECT OR ARRAY*/ 
    var myArray : Array = [1, "a", 3]; 

    function() { 
     myArray.push(obj); 
    } 

    var newMyArray : Array = myArray; 
} 

Antwort

0

Sie Array.isArray() verwenden können, um zu überprüfen, ob es sonst ein Array ist hinzuzufügen

var objToAdd11 : Object = {name: 'Zack', age: 24}; 
this.addObject(objToAdd11); 

//2. should throw errorbecause this is ARRAY, and we need only OBJECTS 
var objToAdd22 : Array = [{name: 'Zack', age: 24}]; 
this.addObject(objToAdd22); 

if(!Array.isArray(objToAdd11)){ 
//add to list 
} 

Bitte überprüfen https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray?v=example

Hoffe, es hilft !!

0

Sie können nach Objekt durch Object.keys(obj).length > 0 && obj.constructor === Object überprüfen. Ich hoffe es hilft.

//1. should add this OBJECT to the array 
var objToAdd11: Object = {name: 'Zack', age: 24}; 
this.addObject(objToAdd11); 

//2. should throw errorbecause this is ARRAY, and we need only OBJECTS 
var objToAdd22: Array = [{name: 'Zack', age: 24}]; 
this.addObject(objToAdd22); 

public addObject(obj: any) : void { 
    /*I need to check if obj parameter is OBJECT OR ARRAY*/ 
    var myArray: Array = [1, "a", 3]; 

    if(Object.keys(obj).length > 0 && obj.constructor === Object) { 
     myArray.push(obj); 
    } else { 
     console.error("Obj is not an Object"); 
    } 

    var newMyArray: Array = myArray; 
} 
Verwandte Themen