首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript 1.4作为构造函数公开的CommonJS模块

TypeScript 1.4作为构造函数公开的CommonJS模块
EN

Stack Overflow用户
提问于 2015-04-01 23:29:22
回答 1查看 149关注 0票数 1

这个问题非常接近我的问题,链接问题中的评论确实很有帮助,但我似乎不能成为一个纯粹的“幽灵”模块。

我正在挣扎的代码是can 在这里找到,我有一个文件"mariasql.d.ts“和一个测试文件"mariasql-tests.ts”。*.d.ts文件公开一个构造函数,其工作方式如下:

代码语言:javascript
复制
var Client = require('mariasql),
c = new Client();

基于另一个原因,*.d.ts文件导出如下所示:

代码语言:javascript
复制
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;
}

测试文件中的导入代码如下所示:

代码语言:javascript
复制
/// <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,这也没有工作。

我觉得我一定是误会了一些显而易见的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-01 23:40:40

你所拥有的一切都很好。所需的唯一次要修复是在您的测试中,而不是

代码语言:javascript
复制
var c:Client.prototype = new Client(),

您需要使用该接口:

代码语言:javascript
复制
var c: MARIASQL.MariaClient = new Client(),

或者将其全部删除,让编译器为您推断;)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29402624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档