打字稿:意外的令牌; 'constructor, function, accessor or variable'
TypeScript : Unexpected token; 'constructor, function, accessor or variable'
我用类型脚本编写了以下 class。当我编译它时,它出错说
"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.
下面是带有行号的代码。
我在这里做错了什么?那些错误是否也是因为第一个 "unexpected token error" 或这些行中的错误?请指教
您不能使用 let
或 var
定义 class 成员,您只能使用 public
或 private
或什么都不用(或 static
).
这就是导致您出现问题的原因:
export default class MqttClientWrapper {
let client : any; // <- right here
// ...
}
这只是您附加的图片中的情况,而不是您发布的代码中的情况。
我用类型脚本编写了以下 class。当我编译它时,它出错说
"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.
下面是带有行号的代码。
我在这里做错了什么?那些错误是否也是因为第一个 "unexpected token error" 或这些行中的错误?请指教
您不能使用 let
或 var
定义 class 成员,您只能使用 public
或 private
或什么都不用(或 static
).
这就是导致您出现问题的原因:
export default class MqttClientWrapper {
let client : any; // <- right here
// ...
}
这只是您附加的图片中的情况,而不是您发布的代码中的情况。