2014-12-03 42 views
2

我有這樣的代碼:「無法找到名爲」編譯出錯進口所需的模塊

///<reference path='typescript_defs/node.d.ts' /> 
///<reference path='typescript_defs/socket.io.d.ts' /> 
import sio = require('socket.io'); 

function main(io: sio.Server) { 
    io.sockets.on('connection', function(socket: sio.Socket) { 
    }); 
} 
main(sio.listen(4444)); 

我預期這將閱讀和尋找其他的例子後的工作,但它給在SIO名稱錯誤.Server和sio.Socket

support.ts(12,19):錯誤TS2304:找不到名稱'sio'。

support.ts(14,47):錯誤TS2304:找不到名稱'sio'。

如果我把'string'替換爲'sio.Socket'來故意得到一個錯誤,它告訴我預期的類型是Server。現在,無論我使用sio.Server還是Server,它都沒有區別,但仍然存在名稱錯誤,我不明白我應該如何使用.d.ts文件中的類型,找不到文檔或示例爲它工作。

希望有人能幫助我!謝謝〜

+0

我看到這裏不是這種情況,但是當你不把類型引用放在文件的最頂端時,這些錯誤也會顯示出來。 – 2015-06-30 23:21:13

回答

2

從閱讀.d.ts file,預期的類型名稱實際上是SocketIO.Server(而不是sio.Server)。這個特定的.d.ts文件公開了全局的類型名稱,而不是通過外部模塊導出。

這裏的奇怪的錯誤(找不到名稱「SIO」),是因爲沒有什麼在命名空間稱爲sio

+0

謝謝!我明白,它現在的作品,謝謝你!並抱歉不包括該.d.ts文件,但是這是我用過的同一個我忘記了!我現在很高興 :) – 2014-12-03 18:17:56

相關問題