TypeScript错误:新表达式无效

时间:2014-09-07 06:59:01

标签: typescript

这是我的打字稿语言课程:

export interface ILogger {
    bla bla
}

export class Logger implements ILogger {

   bla bla
}

export var logger: ILogger = new Logger();

当我像这样使用这个类时:

logger: logger = new logger();

我收到此错误:

  

无效'新'表达

为什么会这样?

3 个答案:

答案 0 :(得分:4)

实例不可更新(new logger)。它也不是有效的类型:logger)。样品

class Logger {
}

var logger = new Logger();

var logger2: logger = new logger(); // 2 errors

修正。你已经为logger做了些什么。再做一次:

class Logger {
}

var logger = new Logger();

var logger2: Logger = new Logger();

答案 1 :(得分:1)

我创建了这样的类实例 -

logger.ts

export interface ILogger {
    bla bla
}

export class Logger implements ILogger {

   bla bla
}

export function getInstance() {
    var instance = new Logger();
    return instance;
}

然后,无论你需要记录器 -

import logger = require('./logger');
var mylogger = logger.getInstance();

答案 2 :(得分:1)

我同意Basarat - 如果你想要一个new,你应该创建一个new Logger() - 但如果你试图使用你导出的记录器的实例,你可以简单地使用它实例化它,因为你已经在这里做了......

export var logger: ILogger = new Logger();

所以你可以直接使用它(你还没有提供实施细节,所以我已经在这里制作了它们)......

// not logger: logger = new logger(); - just use it...
logger.methodName();