#typescript #async-await #typeorm
Вопрос:
Я хочу вывести каждое свойство объекта в результате выполнения запроса.
UserBody
export interface UserBody {
empno: string;
password: string;
class?: string;
user_id?: string;
deptcd?: string;
name?: string;
}
auth.ts
const result: UserBody[] = await getManager(body.store_code).query(`${query}`) as UserBody[]
А затем получите свойство из результирующего объекта, но оно отображается неопределенным при использовании console.log
, например,
console.log(result[0].empno)
Я указал тип для каждого свойства в типе UserBody, но я не понимаю, почему свойство объекта не определено.
Редактировать
В результате возвращаемое значение объявляется UserBody[] и getManager() .В случае запроса () он говорит Обещание.
result => return type: UserBody[]
getManager().query => return type: Promise<any>
Я думаю, причина, по которой оно выводится как неопределенное, заключается в том, что тип не указан.
Promise — это возвращаемое значение, и оно должно быть присвоено конструкции, которая, как я думал, может указывать тип компонента через construct: UserBody[ ] .
Я собираюсь сравнить пароли, полученные посредством обмена данными, с паролями базы данных.
Но getManager().query() Возвращаемое значение пароля (которое является результатом) отображается неопределенным.
Пожалуйста, укажите, если что-то не так с настройкой.
Комментарии:
1. ну, вы уже указали тип. что это говорит, если у вас нет утверждения?
2. @lockednlevered Я не привык использовать typescript. есть ли какой-либо способ подтвердить тип?
3. пожалуйста, предоставьте код getManager
4. Утверждение типа просто сообщает компилятору, что тип должен быть этим другим типом, оно фактически не преобразует значение. Вам все равно нужно проверить, что результат [0] не undefined.tutorialsteacher.com/typescript/type-assertion
5. @Jerome Я только что вызвал getManager из typeorm. импорт { getManager} из ‘typeorm’