typescript 打字稿:意外的令牌;'构造函数、函数、访问器或变量'
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37252807/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
TypeScript : Unexpected token; 'constructor, function, accessor or variable'
提问by mayooran
I have the below class written in type script. When I compile it, it errors out saying
我有以下用类型脚本编写的类。当我编译它时,它会出错说
"src\main\MqttClientWrapper.ts(24,2): error TS1068: Unexpected token. A construct
or, method, accessor, or property was expected."
.
"src\main\MqttClientWrapper.ts(24,2): error TS1068: Unexpected token. A construct
or, method, accessor, or property was expected."
.
Below is the code I have.
下面是我的代码。
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);
}
}
The error is pointing to the line,
错误指向该行,
client : any;
I have tried " var client :any; " and " let client : any " as well. Still I get the same error. Also below lines of errors are found in the trace..
我也尝试过“ 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.
Below is the code with the line numbers.
下面是带有行号的代码。
What am I doing wrong here?are those errors also there because of the first "unexpected token error" or something wrong in those lines as well? Please advice.
我在这里做错了什么?由于第一个“意外令牌错误”或这些行中的某些问题,这些错误是否也在那里?请指教。
回答by Nitzan Tomer
You can't define class members with let
or var
, you can only use public
or private
or nothing (or static
).
您不能使用let
or定义类成员var
,您只能使用public
orprivate
或什么都不使用(或static
)。
So this is what causes your problem:
所以这就是导致您出现问题的原因:
export default class MqttClientWrapper {
let client : any; // <- right here
// ...
}
This is only the case in the images you attached, not in the code you posted.
这仅适用于您附加的图像,而不适用于您发布的代码。