Работа с типам в TS

Рейтинг: -1Ответов: 1Опубликовано: 28.02.2023

Всем привет. Подскажите, пожалуйста, как в TS правильно обьявить переменную предназначенную для хранения масива данных.

Вопрос прост, но проблема в следующем... Переменная должна в себе содержать вопросы. Вопрос может быть один или несколько. Каждый вопрос - новый блок на странице сайта.

По умолчанию изначально вопросов на экране быть не должно. Т.е. массив questions должжен быть пуст.

Но, я не могу просто обьявить что-то вроде

const arrQuestions = ref([])

И потом сделать push эллемента, все поля будут заполнены. Я не могу - ошибка.

Как вариант изначально заполнить массив questions одним объектом, тогда в этот массив можно черещз push ложить еще объекты. Но такой вариан не подходит, так как тогда в массиве есть 1 эллемент и он оно бражается на странице...

Как сделать так, чтобы в массив можно было ложить обьекты определенного типа с нуля через пуш ?

Ответы

▲ 0

Пример компонента

<template>
 <span>{{ questions.length }}</span>
</template>

<script setup lang="ts">
  import { ref } from 'vue';
  
  interface Question {
    prop1: string;
    //...
    propN: boolean;
  }
  
  const questions = ref<Question[]>([]);
  
  function addQuestion() {
    questions.value.push({
      prop1: 'some string';
      //...
      propN: true;
    });
  }
</script>