【问题标题】:TypeScript : Unexpected token; 'constructor, function, accessor or variable'TypeScript:意外的令牌; '构造函数、函数、访问器或变量'
【发布时间】:2016-09-12 04:15:24
【问题描述】:

我有以下用类型脚本编写的类。当我编译它时,它会出错说

"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 client:any;”和“let client:any”。我仍然得到同样的错误。在跟踪中还发现了以下错误行..

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.

下面是带有行号的代码。

我在这里做错了什么?这些错误是否也因为第一个“意外令牌错误”或这些行中的错误而出现?请指教。

【问题讨论】:

  • 您的代码在操场上编译:typescriptlang.org/play/index.html。你用的是什么打字稿版本?
  • @RegisPortalez 它的 1.8.7
  • 在您发布的代码中,您不使用 let。我猜错误是关于缺少括号

标签: javascript types typescript ecmascript-6 tslint


【解决方案1】:

您不能使用letvar 定义类成员,您只能使用publicprivate 或什么都不使用(或static)。

所以这就是导致您的问题的原因:

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

    // ...
}

这仅在您附加的图像中出现,而不是在您发布的代码中。

【讨论】:

    猜你喜欢
    • 2016-03-30
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多