我正在关注此github repository
中的示例我的代码是
const TYPES = {
UserService: Symbol("UserService")
};
export default TYPES;
Visual Studio代码intellisense为上面的代码提供了以下错误。
message:'无法调用类型缺少调用的表达式 签名。输入' SymbolConstructor'没有兼容的电话 签名' at:' 3,18'来源:' ts'
符号定义
interface SymbolConstructor {
readonly iterator: symbol;
}
declare var Symbol: SymbolConstructor;
此符号定义在@ types / node index.d.ts中定义。当我通过visual studio code intellisense导航到Symbol定义时,它将我带到文件@types/node index.d.ts.
我只是复制粘贴我之前提到的存储库中的代码。所以没有变化。我还检查了我安装的软件包,以确保我安装了repo中的所有内容。 一切看起来都一样。
我对打字稿很新。我查看了一些链接
答案 0 :(得分:0)
我发现了我犯的错误。
我查看了存储库here。唯一的变化在于tsconfig文件
在我的tsconfig中,我有这一行
“types”:[“reflect-metadata”]
因此编译器只能查看@ types / node定义。但是当我删除它时,编译器能够从这里找到一些其他定义lib.es2015.symbol.d.ts
。
此文件存在于此处
/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es2015.symbol.d.ts
现在,从我的tsconfig文件
中的类型中删除“reflect-metadata”时出现错误答案 1 :(得分:0)
遇到此问题时,我发现自己忽略了将"lib": ["es6"]
添加到我的tsconfig.json
文件中。
对此设置in this answer有很好的说明。