Angular 如何创建类TypeScript的实例?

Angular 如何创建类TypeScript的实例?,angular,typescript,typescript2.0,Angular,Typescript,Typescript2.0,我有以下课程: export declare class FlashMessagesService { show: (text?: string, options?: Object) => void; grayOut: (value: boolean) => void; } 我尝试创建类的实例: import { FlashMessagesService } from 'angular2-flash-messages'; let _flashMessage

我有以下课程:

export declare class FlashMessagesService {
    show: (text?: string, options?: Object) => void;
    grayOut: (value: boolean) => void;
}
我尝试创建类的实例:

 import { FlashMessagesService } from 'angular2-flash-messages';
    let _flashMessagesService = new FlashMessagesService();
它调用一个错误:

Cannot read property 'show' of undefined

我使用这个

你应该为你的类创建一个构造函数,然后:

export class Flashmessages { 
    ...
    //other vars
    constructor(){
        this.myvar = "value";
    }
}

我认为问题不在于typescript本身,而在于角度依赖注入和组件的组成方式

如果查看正在使用的软件包的源代码,您将看到,
show
函数实际上是由and实现的

因此,要在没有angular依赖项注入的情况下自己创建它的实例,这将是一件棘手的事情,因为您还需要提供抽象类
ChangeDetectorRef
的实例,它本身可能依赖于其他东西,所以它可能很快就会变得非常混乱

类似下面的代码可能会帮助您开始使用它,但它远不是您希望在现实世界中使用的东西

import { FlashMessagesService, FlashMessagesComponent } from 'angular2-flash-messages';
let _flashMessagesService = new FlashMessagesService();
let component = new FlashMessagesComponent(_flashMessagesService, { detectChanges: () => {}} );
console.log(_flashMessagesService.show) // [Function show]

编辑:


我直接在这里编码,所以无法测试它(抱歉:(),现在更彻底地检查它,似乎是这样,所以我没有清楚地看到一种方法,可以让您在不使用
FlashMessagesModule
和角度依赖注入生命周期的情况下创建实例。

在哪里?构造中应该包含什么?我不希望缺少构造函数会导致此错误,我认为这是声明(接口):
export declare class flashmessages service{}
我想我们需要看看
show
方法或者它是如何调用的……顺便说一句,我认为你不需要
declare
关键字-我想这通常只适用于环境上下文。也就是说,它不发出javascriptI找不到
flashmessages组件
它是什么?`{detectChanges:()=>{};`?我找不到FlashMessagesComponent-抱歉,我刚检查过,而且]它没有导出]()
{detectChanges:()=>{}
这只是一种黑客行为,它可以避免创建依赖于构造函数的类的实例。
ChangeDetectorRef
。这对我来说不起作用,我把null放进去,它给了我
core.es5.js:1020错误类型错误:无法读取null的属性'detectChanges'