I am trying to return an array. I read a recordset from SQL and get data:
+------------+------------+------------+ | start_type | field_name | start_text | +------------+------------+------------+ | 0 | Field1 | some text. | +------------+------------+------------+ | 0 | Field2 | some more | +------------+------------+------------+ | 0 | Field3 | still more | +------------+------------+------------+
I want to return this as an array, I try (in a function with Promise<StartText>):
var results: Array<StartText>=[]; results=result.recordset; return results;
with StartText:
export class StartText {
constructor(
public startTextId: number,
public fieldName: string,
public startText: string
) {}
static from(row: {
start_text_id: number;
field_name: string;
start_text: string;
}): StartText {
return new StartText(
row.start_text_id,
row.field_name,
row.start_text
);
}
static toList(result: { recordset: any[] }): StartText[] {
const StartTexts: StartText[] = [];
result.recordset.forEach((element: any) => {
StartTexts.push(StartText.from(element));
});
return StartTexts;
}
}
but this says:
'StartText[]' is missing the following properties from type 'StartText': startTextId, fieldName, startText.
So how do I return the recordset (actually ideally I would like to return a single value for start_type and a dictionary of field_name: start_text pairs but first things first).
Advertisement
Answer
I changed the promise to: Promise <Array<StartText>>.