Kal_Torak Kal_Torak - 1 month ago 17
TypeScript Question

How to access static methods in Typescript

I'm trying to do this, but it's not working like I'd expect.

(I'm using the AMD option)

//logger.ts
export class Logger {

static log(message: string) {
//do stuff
}
}

//main.ts
import logger = module('services/logger');
logger.log("test"); //The property 'log' does not exist on value of type '"logger"'
logger.Logger.log()//works


How do you do logger.log()?

Answer

This answer was correct at time of posting. It is now deprecated. See Dimitris' answer below for a better current solution.

Using a class, you can't. You're always going to have to call {module}.{class}.{function}

But you can drop the class altogether and just call {module}.{function}:

// services/logger.ts
export function log(message:string){
 // do stuff
}

//main.ts
import logger = module('services/logger');
logger.log("test"); // Should work