类型数组的打字稿错误:- 无法调用其类型缺少调用签名的表达式
Posted
技术标签:
【中文标题】类型数组的打字稿错误:- 无法调用其类型缺少调用签名的表达式【英文标题】:Typescript error for type Array:- Cannot invoke an expression whose type lacks a call signature 【发布时间】:2018-11-11 03:38:23 【问题描述】:我在 Angular5 中使用 typescript 创建了如下 getter-setter:-
private _locations: Array<string> = [];
constructor()
/**
* Getter locations
* @return Array<string>
*/
public get locations(): Array<string>
return this._locations;
/**
* Setter locations
* @param Array<string> value
*/
public set locations(value: Array<string>)
this._locations = value;
当我尝试访问方法位置时
this.signUpService.locations();
我收到一个错误:[ts] Cannot invoke an expression whose type lacks a call signature. Type 'string[]' has no compatible call signatures.
【问题讨论】:
你能贴出访问方法'locations'的代码吗? 来自另一个组件的这样的:- this.signUpService.locations(); 可能是***.com/questions/39691889/…的副本 【参考方案1】:this.signUpService.locations();
getter 未被调用。他们只是得到
修复:
const value = this.signUpService.locations;
This is just TypeScript saving you.
【讨论】:
以上是关于类型数组的打字稿错误:- 无法调用其类型缺少调用签名的表达式的主要内容,如果未能解决你的问题,请参考以下文章
打字稿“新”表达式,其目标缺少构造签名,隐含具有“任何”类型
使用 require 时出现打字稿错误 - 此表达式不可调用。类型“typeof import(...)”没有调用签名.ts(2349)