【问题标题】:Algolia Places.js throwing error: "Cannot invoke an expression whose type lacks a call signature."Algolia Places.js 抛出错误:“无法调用类型缺少调用签名的表达式。”
【发布时间】:2020-04-24 12:36:23
【问题描述】:

我正在使用以下行导入 Algolia 的 places.js:

import * as places from 'places.js';

再往下:

const placesAutocomplete = places({
    appId: 'plTI5MDAXXXX',
    apiKey: '7d055eac95a6c48eb4939d2d5edXXXX',
    container: document.querySelector('#address-input')
});

我收到以下错误:

错误 TS2349:无法调用其类型缺少调用签名的表达式。

类型 `typeof import("ionic/XXXX/node_modules/places.js/typings")' 没有兼容的调用签名。

我已经尝试安装DefinitelyTyped/DefinitelyTyped 无济于事。

【问题讨论】:

    标签: javascript angularjs typescript ionic-framework typescript-typings


    【解决方案1】:

    将导入行改为:

    import places from 'places.js';
    

    致力于places.js 捆绑包的最新更新。

    仅供参考:在长期使用类型之后,我还必须解决与类型相关的问题。一旦上述错误得到修复,就会弹出此错误:

    类型“元素”不可分配给类型“字符串 | HTML输入元素'。 [ng] 类型“元素”不可分配给类型“HTMLInputElement”。

    这已通过显式投射到容器上得到解决:

    const placesAutocomplete = places({
        appId: 'plTI5MDAXXXX',
        apiKey: '7d055eac95a6c48eb4939d2d5edXXXX',
        // The following change: <HTMLInputElement>
        container: <HTMLInputElement>document.querySelector('#address-input')
    });
    

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 2019-09-10
      • 2019-12-15
      • 2018-12-25
      • 2023-03-20
      • 2019-09-07
      • 1970-01-01
      • 2015-08-26
      相关资源
      最近更新 更多