2016-03-24 2 views
1

Мне кажется, что я пытаюсь сделать это довольно просто, но мой компилятор продолжает говорить мне: «Невозможно использовать новое с выражением типа who, которому не хватает вызова или конструировать подпись».Определение классов в файлах определения дескрипторов

Все, что я пытаюсь сделать, это определить класс, а не интерфейс, внутри файла определения. Сокращенный вариант моего кода выглядит следующим образом:

declare module jsforce { 

    declare class Connection { 

     constructor(params: ConnectionParams); 

    } 
} 

declare module "jsforce" { 
    var jsforce: jsforce.JSForce; 
    export = jsforce; 
} 

на странице, где я получаю ошибку:

/// <reference path="../typings/jsforce.d.ts" /> 
import jsforce = require('jsforce'); 

// Wapper for JSForce 
export class JSForce { 

    public connection: jsforce.Connection; 

    constructor() { 

    } 

    connect(params: jsforce.ConnectionParams) { 
    this.connection = new jsforce.Connection({}) 
    } 

} 

Что я делаю не так?

ответ

0

Следующая компилируется нормально с последней машинописи:

jsforce.d.ts:

declare module jsforce { 

    class Connection 
    { 
     constructor(params: string); 
    } 
} 

declare module "jsforce" 
{ 
    export = jsforce; 
} 

app.ts

import jsforce = require('jsforce'); 

// Wapper for JSForce 
export class JSForce 
{ 

    public connection: jsforce.Connection; 

    constructor() 
    { 

    } 

    connect(params: jsforce.Connection) 
    { 
     this.connection = new jsforce.Connection('12') 
    } 
} 
Смежные вопросы