如何解决TypeScript中第4行出现的TS(1005) '(' expected错误
解决TS(1005): '(' expected 错误
你的TS(1005)错误完全是因为接口方法的语法不符合TypeScript规则,再加上一个小拼写错误,我帮你拆解问题和修复方案:
问题根源
TypeScript接口里的方法声明逻辑和Java/C#不一样——它要求方法名在前,参数列表紧跟,最后才是返回类型。你第4行的代码用了Java风格的写法(返回类型放在方法名前面),编译器看到List<WordFrequency>之后,本来期待看到(来启动参数列表,结果看到的是calculateMostFrequentNWords,所以直接报错说需要(。另外还有个小拼写错误也得修正。
具体修复步骤
- 修正方法名拼写:第3行的
icalculateFrequencyForWord多了一个开头的i,应该改成calculateFrequencyForWord。 - 调整方法声明语法:把第4行的返回类型移到方法签名末尾,同时把Java风格的
List<WordFrequency>替换成TypeScript的数组类型(Array<WordFrequency>或者WordFrequency[]都可以,两者等价)。
修复后的代码
interface WordFrequencyAnalyzer { calculateHighestFrequency(text: string): number; calculateFrequencyForWord(text: string, word: string): number; calculateMostFrequentNWords(text: string, n: number): Array<WordFrequency>; };
或者用更简洁的数组语法:
interface WordFrequencyAnalyzer { calculateHighestFrequency(text: string): number; calculateFrequencyForWord(text: string, word: string): number; calculateMostFrequentNWords(text: string, n: number): WordFrequency[]; };
这样修改之后,TS(1005)的错误就会消失,接口的语法也完全符合TypeScript的规范了。
内容的提问来源于stack exchange,提问作者S. A.




