2016-05-16 34 views
2

我有寫在類型腳本中的下面的類。當我編譯它時,出錯說出TypeScript:意外的令牌; '構造函數,函數,訪問器或變量'

"src\main\MqttClientWrapper.ts(24,2): error TS1068: Unexpected token. A construct or, method, accessor, or property was expected."

以下是我的代碼。

var mqtt :any = require('mqtt'); 

export interface IWillMessage { 
    topic: string; 
    payload: string; 
    qos: number; 
    retain: string; 
} 

export interface IMessageReceivedCallBack { 
    onMessageReceived(message : string); 
} 

export interface IMqttOptions { 
    clientId: string; 
    keepAlive: number; 
    clean: string; 
    reconnectPeriod: string; 
    will: IWillMessage; 
} 

export default class MqttClientWrapper { 

client : any; 

constructor(url: string, mqttOptions : IMqttOptions, messageReceivedCallBack : IMessageReceivedCallBack) { 
    client = mqtt.connect(url, mqttOptions); 
    client.on('message',function(topic : string, message : string){ 
    messageReceivedCallBack.onMessageReceived(message); 
    } 
} 

subscribeMessage(topic : string) { 
    client.subscribe(topic); 
} 

publishMessage(topic : string, message : string, level : number) { 
    client.publish(topic,message,level); 
} 

} 

錯誤指向行,

client : any; 

我已經試過「VAR的客戶:任何」,以及「讓客戶:任何」爲好。我仍然有同樣的錯誤。在跟蹤中還發現下面的錯誤行..

src\main\MqttClientWrapper.ts(26,16): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(26,16): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(26,38): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(26,38): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(26,78): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(26,78): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(26,106): error TS1005: ';' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(26,106): 
error TS1005: ';' expected. 
src\main\MqttClientWrapper.ts(31,1): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(31,1): e 
rror TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(33,24): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(33,24): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(33,34): error TS1005: ';' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(33,34): 
error TS1005: ';' expected. 
src\main\MqttClientWrapper.ts(37,22): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(37,22): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(37,40): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(37,40): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(37,56): error TS1005: ',' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(37,56): 
error TS1005: ',' expected. 
src\main\MqttClientWrapper.ts(37,67): error TS1005: ';' expected. 
[16:44:41] [Typescript] TypeScript error: src\main\MqttClientWrapper.ts(37,67): 
error TS1005: ';' expected. 
src\main\MqttClientWrapper.ts(41,1): error TS1128: Declaration or statement expe 
cted. 

下面是帶行號的代碼。

enter image description here

我在做什麼錯在這裏?是這些錯誤也沒有,因爲第一個「意外的標記錯誤」或一些錯誤的那些行的呢?請指教。

+0

您的代碼在操場上編譯:http://www.typescriptlang.org/play/index.html。你正在使用什麼打字稿? –

+0

@RegisPortalez它的1.8.7 – mayooran

+0

它抱怨線24',這是(看你所附的圖片)這個:'let client:any;'這是不允許在一個班級內。也許你的意思是「客戶:任何」或「私人客戶:任何」(或公衆)? –

回答

8

您不能用letvar定義班級成員,您只能使用publicprivate或任何內容(或static)。

因此,這是什麼原因造成您的問題:

export default class MqttClientWrapper { 
    let client : any; // <- right here 

    // ... 
} 

這是隻有在你連接,而不是在您發佈的代碼圖像的情況。

相關問題