2013-12-11 45 views
2

我想我的項目有+的NodeJS到ExpressJS轉換打字原稿。「肯定輸入」 +的NodeJS快速定義文件中有錯誤

我從絕對鍵入的定義文件,但他們似乎有很多錯誤的:

export interface ClientRequest extends events.NodeEventEmitter, stream.WritableStream  
{ 
    // Extended base methods 
    write(str: string, encoding?: string, fd?: string): boolean; 
    write(buffer: NodeBuffer): boolean; 

    write(chunk: any, encoding?: string): void; 
    end(data?: any, encoding?: string): void; 
    abort(): void; 
    setTimeout(timeout: number, callback?: Function): void; 
    setNoDelay(noDelay?: Function): void; 
    setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; 
} 

export interface Server extends net.Server { 
    // Extended base methods 
    listen(port: number, host?: string, backlog?: number, listeningListener?: Function): void; 
    listen(path: string, listeningListener?: Function): void; 
    listen(handle: any, listeningListener?: Function): void; 

    listen(port: number, host?: string, callback?: Function): void; 
    close(): void; 
    address(): { port: number; family: string; address: string; }; 
    addContext(hostName: string, credentials: { 
     key: string; 
     cert: string; 
     ca: string; 
    }): void; 
    maxConnections: number; 
    connections: number; 
} 

的方法「寫」,並聽取拋出錯誤:「不兼容覆蓋了寫流的成員」 。

在app.js文件中var app = express();函數拋出一個錯誤:方法表達式不是函數類型:

var http = require("http"); 
var express = require("express"); 
var expose = require("express-expose"); 
var fs = require("fs"); 
var formidable = require("formidable"); 
var upload = require('Upload'); 

var app = express(); 
var HOST = "localhost"; 
var PORT = 8080; 
+0

不能再現的大概定義過期。修復錯誤並向Definitly類型的項目發出拉取請求。這是開源的工作原理;-) – TheHippo

回答

2

「不兼容覆蓋」 - 這是在webStorm一個bug,請投票給WEB-10239

「的方法表達不是函數類型:」可在WebStorm 7.0.2

+0

你是什麼意思的「無法在Webstorm 7.0.2中重現」。這是我目前使用的webstorm版本。就bug而言,我們可以忽略警告並繼續嗎?並期望它能正常工作? – EternallyCurious

+0

還有一件事!你的回答非常有幫助。我還問過關於如何通常創建Typescript定義文件的Quora問題。你可以請嘗試回答嗎?這裏的鏈接:http://www.quora.com/TypeScript/Is-there-a-tool-or-procedure-to-convert-Javascript-files-to-Typescript – EternallyCurious

+0

沒有工具(至少我沒有意識到任何)創建打字稿文件的JavaScript ... Typescript編譯器可以產生環境聲明(d.ts)文件的.ts文件(請參閱 - 聲明選項),不能這樣做的JavaScript。當然,作爲一個骯髒的黑客,您可以嘗試將.js文件重命名爲.ts,然後使用-declaration選項爲它們運行typescript編譯器,但這可能會失敗,因爲編譯器不會理解大多數js構造和提取他們的聲明 – lena