我正在尝试将三个脚本从Javascript转换为TypeScript。可以在gist中找到脚本。但是,我确实有一个我无法摆脱的错误。请注意,这是我的第一个React和TypeScript项目,因此我很容易错过明显的东西。我正在使用.tsx
文件和TypeScript 2.1。
在文件中:GoogleApiComponent.tsx
import * as cache from './ScriptCache'
...
componentWillMount() {
this.scriptCache = cache({ <--Error TS2349 here
google: GoogleApi({
apiKey: apiKey,
libraries: libraries
})
});
}
给我这个错误:
Cannot invoke an expression whose type lacks a call signature. Type 'typeof "ScriptCache"' has no compatible call signatures.
ScriptCache.tsx
看起来像这样:let counter = 0;
let scriptMap = new Map();
export const ScriptCache = (function (global: any) {
return function ScriptCache(scripts: any) {
const Cache: any = {}
...
最佳答案
看来您输入的是不正确的:)
请尝试将其导入为import cache from './ScriptCache'
。如果您仅使用了要点中的代码,则缓存也将默认导出。
如果这不起作用,请尝试import { ScriptCache as cache } from './ScriptCache'
。您不需要as
语法。只是这样,您不必更改变量名称。