TypeScript типизация
Стал ковырять typescript. И непонятно как типизировать подобное.
var firstArray = ["a", "b", "c"]; // инициализируем переменную, содержащую массив строк
var secondArray = [1, 2, 3]; // инициализируем переменную, содержащую массив чисел
var newArray= firstArray.concat( secondArray ); // объединяем массивы
console.log( newArray ); // результат ["a", "b", "c", 1, 2, 3]
Понятно, что на практике лучше, чтобы подобные разношерстные массивы не возникали. Но как их все таки типизировать? Пробовал и так [number, string], и так Array<number | string> что то все равно ошибку пишет.
Ответы (2 шт):
Автор решения: doox911
→ Ссылка
- Замечание к вопросу. Всегда прикладываете ошибку, если она есть.
- Типизировать можно кучей способов, но на мой взгляд, лучше максимально позволять TS выводить типы самому. И наилучшее решение для вашего вопроса, опять же на мой взгляд, это использовать современный синтаксис(
spread syntax):
const firstArray = ["a", "b", "c"];
const secondArray = [1, 2, 3];
const newArray = [...firstArray,...secondArray];
Автор решения: Qwertiy
→ Ссылка
var firstArray = ["a", "b", "c"];
var secondArray = [1, 2, 3];
var newArray = (firstArray as (string | number)[]).concat(secondArray);
console.log(newArray); // результат ["a", "b", "c", 1, 2, 3]
