En un archivo .ts , tengo el siguiente código
export class SomeClass { . . . public someMethod() { ... } } Quiero llamar a este método someMethod en un archivo .js .
Lo intenté
import { SomeClass } from '../../../../SomeClass'; . . . SomeClass.someMethod();pero obtuve el siguiente error:
someMethod is not a function
¿Tengo que hacer que el método sea static ?
Prefiero no porque llama a otros métodos y tendré que hacerlos todos static .
¿Puedo crear una instancia de esta clase en el archivo .js ?
¡Gracias!
Una salida posible
puede crear sus archivos ts usando el comando de compilación y convertirlo a javascript y luego llamarlo en su archivo js
Esto debería funcionar
hay dos soluciones, ya sea crear una instancia de la clase primero y luego usar un método público como
let class = new SomeClass(); class.someMethod();o hágalo un método estático, entonces su código se compilará con éxito
Además, cree una instancia de la clase, también puede usar algunos como
export function MyClass() { return new SomeClass() }O si necesitas un constructor
export function MyClass(args) { return new SomeClass(args) } class SomeClass{ constructor(arg){this._arg=arg} }Puedes en .ts
import { MyClass} from '...'; @Component({ ... }) export class AppComponent { MyClass=MyClass //<--if you want to use in .html .... myfunction(){ MyClass.someMethod(); //or const obj=MyClass(); obj.someMethod(); } }También puede, si solo las funciones definidas usan una const
export const Utils{ someFunction:()=>{console.log("hello"} } Y luego usas simplemente Utils.someFunction()