Что это значит: элементы: Массив

#arrays #angular #typescript

#массивы #angular #машинопись

Вопрос:

Очень новичок в Angular и Javascript. У меня есть домашнее задание для angular.js класс. У нас есть подсказка по коду, и нам нужно создать простую форму. В подсказке по коду есть:

 export class AppComponent {
      items:Array<any>
      constructor() {
          this.items = [];
          this.addItems();
      }
  

Я не понимаю, что такое часть «элементы: массив» и как она работает.
Как мне создать простую форму? Что бы я ни делал, мой app.module.ts не будет работать, если я что-то изменю, и это никогда не было проблемой.

У меня есть:

 @Component({
  selector: 'app-root',
  template: `
    <h1> First Name: <input [(ngModel)]="items"> </h1>
    <ul *ngFor="let item of items;let i = index">
    <li>{{i}}: {{item.num}} <input type='button' value='delete' (click)=removeItem(item)></li>
    </ul>
  `,
})
  

Комментарии:

1. В первом фрагменте это TypeScript, а не JavaScript.

2. О, хорошо, значит, наличие массива <любой> означает, что тип массива может иметь в нем любое значение?

3. Это означает, что экземпляр AppComponent будет иметь свойство items , которое является массивом любого типа.

4. Я бы рекомендовал вам прочитать их документ здесь

5. @ellie_k вы имеете в виду, что вам нужно добавить несколько форм?

Ответ №1:

на этот раз вы используете не javascript, а typescript. итак, все, что вы пишете, компилируется в javascript, а затем выполняется.

 items:Array<any>
  

здесь вы объявляете тип, поэтому вы сообщаете typescript, что эта переменная items является типом массива. это означает, что переменная items может ссылаться только на массив, и больше ни на что

 items:Array<any>=[]
items:Array<any>=new Array<any>();
  

но если вы попытаетесь назначить что-то еще

 items:Array<any>=2
  

компилятор typescript выдаст вам сообщение об ошибке и сообщит, что он не может установить тип числа в тип массива.

 <any>
  

это общий тип. вы сообщаете компилятору, какие типы будут вставлены в этот массив. «любой» означает, что элементы, которые вы помещаете в массив, могут быть любыми. числа, строка, объект, массив… итак, вы могли бы инициировать это следующим образом

 items:Array<any>=["Hello",2,{first:"user1",last:"pass1"},[4,6,7]];
  

но вместо «любой», если вы напишете что-то вроде этого

 items:Array<number>;
  

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

Комментарии:

1. Отличный ответ, я бы просто предложил небольшое редактирование, поскольку в TypeScript есть общие , поэтому выражение » <any> является общим типом» может немного сбивать с толку.