Tengo una aplicación Typscript y una API. Escribí la siguiente prueba según numerosas búsquedas en Google y algunos ejemplos encontrados aquí en SO y otros lugares. No veo ningún problema en el código de prueba. Buscar en Google TypeError: chai.request is not a function , hasta ahora me está llevando ahora a dónde. ¿Ves mi error a continuación?
Gracias, gracias, gracias por cualquier ayuda :-)
Resolví esto con el siguiente enfoque (Express.js con TypeScript)
import chai from 'chai'; import chaiHttp from 'chai-http'; chai.use(chaiHttp);Espero eso ayude.
Recuerde instalar @types/chai y otros paquetes de definición de tipo para que funcione el bloque anterior
Puedo reproducir el problema si habilito la opción del compilador esModuleInterop . Cuando esta opción está habilitada, import * as chai from 'chai'; solo importa los miembros que tiene el módulo chai en el momento de la importación. De hecho, creo que se considera dudoso agregar exportaciones a un módulo ES en tiempo de ejecución. Intenta import chai from 'chai'; o import chai = require('chai'); en cambio; cualquiera de los dos me funciona.
Está mezclando import y require sintaxis, ¡es una mala idea!
Use solo la sintaxis de import :
import * as chai from 'chai'; import * as chai-http from 'chai-http'; chai.use(chai-http);Editar
Desafortunadamente, parece que la sintaxis del módulo es6 no es compatible con chai-http. Puedes ver el problemaaquí
import * as chai from 'chai'; import chaiHttp = require('chai-http'); chai.use(chai-http);