属性 'ResultJson' 在类型 'Book[]' 上不存在

Property 'ResultJson' does not exist on type 'Book[]'

我正在使用 angular 4 并在 运行 ng build --prod 时收到此错误。它在 运行 ng-serve 上没有给出任何错误并且工作正常。 ResultJson 是我的 JSON 文件。如果我删除 ResultJson,它不会显示 UI 上的任何数据。帮助将不胜感激。谢谢。

这是我的 html 文件。

<div *ngIf="books?.ResultJson.length === 0">
    <h4>no result found</h4>
</div>

<div *ngIf="books?.ResultJson.length > 0">
    <form>
        <table>
            <tr>
                <td><h4>Name</h4></td>
                <td><h4>Id</h4></td>
            </tr>
            <tr *ngFor="let b of book?.ResultJson">
                <td>{{p.name}}</td>
                <td>{{p.id}}</td>
            </tr>
        </table>
    </form>

这是我的打字稿文件中的数组

books: Book[] = [];

问题在于问号:>?< 不要使用 *ngIf="books?.Resu... 而是使用 *ngIf="books && books.ResultJson.length > 0" 或创建方法 booksExists() 其中 return true/false 用于 if(与 book 相同)。这可能与 AoT(提前 - 可能用于生产编译)有关 - 我在 this angular-framework.

中找到了此信息

是AOT的问题。而不是 ng-build --prod,如果我 运行 ng build --prod --aot false 它工作正常。不知道确切的解决方案是什么,但它使我的代码工作正常。