76

我正在尝试这样做,但它并没有像我期望的那样工作。

(我正在使用 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() 的?

4

2 回答 2

174

您可以直接导入类,这使您可以拥有所需的用法。

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

并且定义保持不变。

// path/logger.ts
export class Logger {

    static Log() {
        ...
    }
}
于 2015-10-18T16:18:03.657 回答
13

这个答案在发布时是正确的。现在已弃用。请参阅Dimitris 的答案以获得更好的当前解决方案。

使用类,你不能。你总是需要打电话{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
于 2013-04-25T07:00:28.673 回答