【问题标题】:Ionic2 Typescript TwilioIonic2 Typescript Twilio
【发布时间】:2017-10-07 05:26:13
【问题描述】:

如果有人对以下内容有任何信息/见解,将不胜感激......

我正在尝试将 Twilio 包含在 Ionic2 TypeScript 应用程序中。它是通过 npm 安装的。我可以看到它已成功安装在我的 node_modules 中,但是当我尝试导入模块时出现错误。

在我的 declarations.d.ts 中,它被声明为... declare module 'twilio';

在我的页面组件中,我正在像这样导入它... import * as twilio from 'twilio';

在其他应用程序中,当使用诸如时刻或时区之类的内容时,这是我导入所需依赖项的方式。

但是,使用 Twilio,无论我如何尝试导入/要求它,我都会遇到相同的错误。

错误:未捕获的类型错误:无法读取未定义的属性“isTTY”...

Uncaught TypeError: Cannot read property 'isTTY' of undefined
    at Object.<anonymous> (index.js:28)
    at Object.<anonymous> (index.js:28)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (AccessToken.js:5)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (index.js:14)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (emergency.ts:10)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (emergency.ts:21)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (main.js:174604)
    at __webpack_require__ (bootstrap 236b50c…:19)
    at Object.<anonymous> (platform-browser-dynamic.es5.js:170)
    at __webpack_require__ (bootstrap 236b50c…:19)

离子信息(输出):

Cordova CLI: 7.0.0 
Ionic Framework Version: 3.0.1
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.0
ios-deploy version: 1.9.1 
ios-sim version: 5.0.13 
OS: macOS Sierra
Node Version: v6.10.2

再一次,我们将不胜感激任何对正确方向的帮助。

提前致谢。

【问题讨论】:

    标签: typescript ionic2 twilio


    【解决方案1】:

    您错过的步骤是为 Twillo 安装类型声明。

    大多数 javascript 模块的类型声明可以在 DefinitelyTyped Repository 中找到。

    做完之后:

    npm install twilo --save
    

    做:

      npm install @types/twilo --save-dev
    

    检查here

    然后进行导入:

    import * as twilio from 'twilio';
    

    您不必在 declaration.d.ts

    中声明

    【讨论】:

    • 我相信我已经安装了打字并忘记在我的帖子中注明...我再次运行该命令以确保仍然产生先前生成的错误... TypeError:无法读取属性' isTTY' 未定义。与我一起工作的人使用已弃用的节点库引用了这个与 Twilio 相关联的内容。 github.com/brianc/node-deprecate/blob/master/index.js 这是错误的根源。但到目前为止,我们还没有找到解决办法。
    • github.com/DefinitelyTyped/DefinitelyTyped/blob/… 这是类型声明.. 这不是 api 吗?
    【解决方案2】:

    twilio(@types/twilio 版本:0.0.9)的输入与 twilio 3.x API 不兼容。 这就是降级到 2.x 解决问题的原因。

    功能请求:- https://github.com/twilio/twilio-node/issues/250

    相关问题:- https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18992

    【讨论】:

      【解决方案3】:

      从 Twilio 版本 3.0.0 降级到 2.11.1 解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2016-10-30
        • 1970-01-01
        • 2016-07-19
        • 2017-08-08
        • 2017-09-06
        • 2016-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多