#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>
является общим типом» может немного сбивать с толку.