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