Ahora estoy desarrollando un complemento de extensión de Google Chrome, defino una función de traducción en el archivo my-ts.js como esta (todo el código se ejecuta en la extensión de Google Chrome):
import * as tjs from 'translation.js' export default { translate(queryObj) { const api = tjs[queryObj.api] return tjs[queryObj.api].translate(queryObj) }, audio(queryObj) { return tjs[queryObj.api].audio(queryObj) } }cuando uso la función en otro archivo js como este:
import {createServer} from 'connect.io'; import chromeCall from 'chrome-call'; import ts from '../public/my-ts'; import {write} from '../public/clipboard'; import ga from '../public/ga'; const server = createServer(); /** * fetch the translate result * @param {Query} queryObj * @param {Function} resolve */ export async function onGetTranslateResult( queryObj , resolve ) { queryObj.api = queryObj.api.toLowerCase() if(queryObj.api === 'googlecn') { queryObj.api = 'google' } else if (queryObj.api === 'google') { queryObj.api = 'google' queryObj.com = true } const {api} = queryObj; ga( 'send' , 'event' , 'translate' , api ); try { resolve( await ts.translate( queryObj ) ); ga( 'send' , 'event' , 'translate success' , api ); } catch ( errorMsg ) { let error = errorMsg.message; if (errorMsg.code === 'NETWORK_TIMEOUT') { error = '' } if ( 'google' === queryObj.api && !queryObj.com ) { error += 'tips: make sure you are not open the proxy'; } ga( 'send' , 'event' , 'translate failed' , api ); resolve( { error, code: errorMsg.code } ); } }muestra error:
Cannot read properties of undefined (reading 'translate')¿Por qué no se pudo invocar la función de traducción? que debo hacer para que funcione?