Home > Blockchain >  How do I convert an any array to a string array containing other datatypes inside in typescript?
How do I convert an any array to a string array containing other datatypes inside in typescript?

Time:12-21

I'm doing a typescript tutorial exercise that wants me to change an any[] array into string[].

// declaring an array of any datatype
const  manufacturers: any[] = [{ id: 'Samsung', checked: false },
        { id: 'Motorola', checked: false },
        { id: 'Apple', checked: false },
        { id: 'Sony', checked: false }
    ];

console.log('Available Products are: ');

 // logic to populate the above declared array's id value
for (const item of manufacturers) {

     console.log(item.id);
    if(item.id === "Apple")
    {
        console.log("check value is "   item.checked)
    }
    }

The above one works, but if I change any[] into string[], it doesn't work. If I do

"const manufacturers: [string,boolean][]=" then it recognizes the boolean and not the string. I'm trying to understand why it doesn't see id as a string variable and make it match. How do I accomplish this without using 'any[]'

CodePudding user response:

The type of manufacturers is { id: string, checked: boolean }[].

Explanation:

The manufacturers object is an array, containing objects. Each object has an id and a checked property which are of types string and boolean respectively.

So as you said, changing from any[] to string[] won't work, because the manufacturers type is not string[], but { id: string, checked: boolean }[].

const manufacturers: { id: string, checked: boolean }[] = [{ id: 'Samsung', checked: false },
{ id: 'Motorola', checked: false },
{ id: 'Apple', checked: false },
{ id: 'Sony', checked: false }
];

console.log('Available Products are: ');

for (const item of manufacturers) {

  console.log(item.id);
  if (item.id === "Apple") {
    console.log("check value is "   item.checked)
  }
}

As @Calz pointed out, you don't need to explicitly enter the type of the variable, as initialization is taking place at the time of declaration.

Here's a small example explaining this:

let a;
a = 5
console.log(typeof a) // number
a = "string"
console.log(typeof a) // string

let b = 5
b = "some string"; // error as TypeScript blames that type string is not assignable to type number
  • Related