将 Angular 9 更新到 9.1,出现错误 "This expression is not callable"
Updated Angular 9 to 9.1, getting error "This expression is not callable"
在我的 package.json
中,我将 Angular ^9.0.6
更新为 ^9.1.1
当我 运行 ng build
时,出现错误:
"This expression is not callable." ...@types/uuid/index has no call signatures
错误发生在我调用uuid()的那一行,看这里:
import * as uuid from 'uuid';
public getUuid(): string {
return uuid();
}
我尝试了不同版本的 uuid ^3.4.0
到 ^7.0.3
。当我降级 Angular 时,错误消失了。
我的解决方案是将导入更改为此(根据 uuid documentation,v4 是最受欢迎的):
import { v4 as uuid } from 'uuid';
说明:我查看了node_modules\@types\uuid\interfaces.d.ts
,发现有针对不同版本(v1
到v5
)的导出。所以在查看文档后我选择了 v4
。 Angular 9.1 似乎不喜欢这种情况下的 import *
语法 - 尚未能够确定原因。
在我的 package.json
中,我将 Angular ^9.0.6
更新为 ^9.1.1
当我 运行 ng build
时,出现错误:
"This expression is not callable." ...@types/uuid/index has no call signatures
错误发生在我调用uuid()的那一行,看这里:
import * as uuid from 'uuid';
public getUuid(): string {
return uuid();
}
我尝试了不同版本的 uuid ^3.4.0
到 ^7.0.3
。当我降级 Angular 时,错误消失了。
我的解决方案是将导入更改为此(根据 uuid documentation,v4 是最受欢迎的):
import { v4 as uuid } from 'uuid';
说明:我查看了node_modules\@types\uuid\interfaces.d.ts
,发现有针对不同版本(v1
到v5
)的导出。所以在查看文档后我选择了 v4
。 Angular 9.1 似乎不喜欢这种情况下的 import *
语法 - 尚未能够确定原因。