は、タイプ '{}'はタイプ '{title:string;テキスト:文字列。 }「私は活字体コード以下のエラーの下に取得しています
タイプは、 『{} {タイトル』型に代入できません」:文字列;テキスト:文字列。 } '。タイプ '{}'にプロパティ 'title'がありません。
私はその理由とどのようにこれを解決するには何以下のような「記事」、
article: { title: string, text: string } = {};
を宣言していたよう?ありがとう!
import { Component } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'article-editor',
template: `
<p>Title: <input [formControl]="titleControl"></p>
<p>Text: <input [formControl]="textControl"></p>
<p><button (click)="saveArticle()">Save</button></p>
<hr />
<p>Preview:</p>
<div style="border:1px solid #999;margin:50px;">
<h1>{{article.title}}</h1>
<p>{{article.text}}</p>
</div>
`
})
export class ArticleEditorComponent {
article: { title: string, text: string } = {};
titleControl: FormControl = new FormControl(null, Validators.required);
textControl: FormControl = new FormControl(null, Validators.required);
articleFormGroup: FormGroup = new FormGroup({
title: this.titleControl,
text: this.textControl
});
saveArticle() {
if (this.articleFormGroup.valid) {
this.article = this.articleFormGroup.value;
} else {
console.log('Missing field(s)!');
}
}
}
これは間違ったことです。そのような場合は、別の答えに示唆されているようにフィールドをオプションとして定義する方が良いです。 –
@VilmantasBaranauskasそれはすべての場合に当てはまるわけではありません。必須のプロパティが必要な場合もありますが、ただちに設定する必要はありません。この方法でオブジェクトを作成し、プロパティを割り当てます。 –