1
This question是很接近接近我的问题,并且链接问题中的注释非常有帮助,但我似乎无法制作纯“鬼”模块。TypeScript 1.4作为构造函数公开的CommonJS模块
我在努力的代码可以be found here我有一个文件“mariasql.d.ts”和一个测试文件“mariasql-tests.ts”。在* .d.ts文件暴露了一个构造函数,那就像这样:
var Client = require('mariasql),
c = new Client();
基于其他SO quesion中,* .d.ts文件导出像这样:
module MARIASQL {
//... edited for brevity
export interface MariaClient {
connect(config:ClientConfig):void;
end():void;
destroy():void;
escape(query:string):string;
query(q:string, placeHolders?:Dictionary, useArray?:boolean):MariaQuery;
query(q:string, placeHolders?:Array<any>, useArray?:boolean):MariaQuery;
query(q:string, useArray?:boolean):MariaQuery;
prepare(query:string): MariaPreparedQuery;
isMariaDB():boolean;
on(signal:string, cb:MariaCallBackError): MariaClient; // signal 'error'
on(signal:string, cb:MariaCallBackObject): MariaClient; // signal 'close'
on(signal:string, cb:MariaCallBackVoid): MariaClient; // signal 'connect'
connected: boolean;
threadId: string;
}
export interface Client {
new():MariaClient;
():MariaClient;
prototype: MariaClient;
}
}
declare module "mariasql" {
var Client:MARIASQL.Client;
export = Client;
}
的在测试文件导入代码看起来像这样:
/// <reference path="../node/node-0.10.d.ts" />
/// <reference path="./mariasql.d.ts" />
// Example 1 - SHOW DATABASES
import util = require('util');
import Client = require('mariasql');
var c:Client = new Client(),
inspect = util.inspect;
// edited ...
注 - GitHub的链接将读取c:Client.prototype
这也没有工作。
我觉得我必须误解一些明显的东西。
另外我更喜欢'mariasql'而不是'MARIASQL' – basarat 2015-04-01 23:55:49
我*只是*发布PR,抱歉我没有及时看到此评论;我误解了这个例子,并认为上限是“风格”。 – Bennett 2015-04-02 00:07:11