Angular 7+错误:“该属性在对象类型上不可用”

时间:2019-07-03 07:15:54

标签: angular typescript

我正在使用服务向API发出简单的HTTP get请求,并且请求成功。我取回了一个带有属性及其值的对象,当我订阅并记录响应时,它们似乎都可以正常工作。然后,如果我尝试访问响应(例如,(console.log(response.title))上的属性,则会收到错误消息,指出该对象上没有该属性。对我来说,奇怪的是,这些属性被定义为如果我忽略该错误,则程序将在Localhost上编译并提供服务,并且将给出错误的相同属性记录到控制台中,甚至使用相同的属性在DOM中输出文本,并且仍然呈现该错误,但仍显示错误并在响应对象的所有属性上执行此操作。这是错误还是我丢失了某些东西?我不想更改响应,因为它已经是我想要的对象了。

1 个答案:

答案 0 :(得分:0)

  

对我来说奇怪的是,这些属性被定义为响应对象的一部分。

没关系。您得到的错误是TypeScript静态错误。在编译时,TypeScript不了解API响应的形式。您可以这样说:With Application.FileDialog(msoFileDialogFilePicker) 'Makes sure the user can select only one file .AllowMultiSelect = False .Title = "Select WIP Report" .ButtonName = "OK" 'Filter to just the following types of files to narrow down selection options .Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1 'Show the dialog box .Show 'Store in fullpath variable wipreport = .SelectedItems.Item(1) End With Dim wb As Workbook Set wb = Workbooks.Open(wipreport) Dim lookFor As Range Dim srchrange As Range Set lookFor = Workbooks("BPM-Tool.xlsm").Worksheets("BPM-Report").Cells(10, 2) Set srchrange = wb.Worksheets("1. WIP report").Range("B15:B1000") lookFor.Offset(0, 317).Value = Application.VLookup(lookFor, srchrange, 18, False) 放在哪里,请指定:wipreport,即使http.get(//...args)也可以解决问题。

您也可以在消费期间执行此操作:例如,http.get</* type declaration here */>(//... args)

这是你的闪电战的一个分支:

https://stackblitz.com/edit/angular-ziheza?file=src%2Fapp%2Ftest.service.ts