如何在TypeScript中访问静态方法

时间:2013-04-25 06:10:21

标签: typescript

我正在努力做到这一点,但它并没有像我期望的那样发挥作用。

(我正在使用AMD选项)

//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

你如何做logger.log()?

2 个答案:

答案 0 :(得分:145)

您可以直接导入类,这样您就可以获得所需的用法。

// usage
import { Logger } from 'path/logger.ts'
Logger.Log();

定义保持不变。

// path/logger.ts
export class Logger {

    static Log() {
        ...
    }
}

答案 1 :(得分:12)

这个答案在发布时是正确的。它已被弃用。有关更好的当前解决方案,请参阅Dimitris' answer

使用课程,你不能。你总是要打电话给{module}.{class}.{function}

但你可以完全放弃课程,只需拨打{module}.{function}

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

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