我在我的应用程序(不是Twilio节点)上使用Twilio.js库,并且没有可用的此库的模块或类型。只有一个可用的全局变量Twilio
。如何在TypeScript中为Twilio全局JS库创建环境声明?
最简单的环境声明可以有避免在IDE的错误是这样的:
declare const Twilio: any;
但我想走得更远一点,对于我一直在阅读打字稿手册和其他一些资源。我特别重视this link。
而且这里是我到目前为止有:
declare const Twilio: Twilio.Base;
declare namespace Twilio {
export interface Base {
Device: Device;
}
export interface Device {
ready(handler: DeviceCallback): void;
}
export interface DeviceCallback {
(device: Device): void;
}
}
这是工作,但它只是一个样本,它是不完整的。举个例子,就足够了,现在:)
但我的问题有三个方面:
- 鉴于短样品上面,你会做不同的东西吗?
- 如果我从所有接口中删除
export
关键字,它仍然有效。我还应该离开吗?它有什么作用? 由于使用
Twilio.Device.ready(this.handleTwilioDeviceReady.bind(this));
,集成开发环境给我在徘徊我的鼠标时,以下几点:Twilio
:const Twilio: Twilio.Base
Twilio.Device
:(property) Twilio.Base.Device: Twilio.Device
Twilio.Device.ready
:(method) Twilio.Device.ready(handler: Twilio.DeviceCallback): void
我怎样才能摆脱出现在IDE中的
Twilio.Base
,而不是s如何:Twilio
:const Twilio: Twilio
Twilio.Device
:(property) Twilio.Device: Twilio.Device
看起来存在用于Twilio可用的类型定义为'@类型/ twilio'通过NPM:https://www.npmjs.com/package/@types/twilio – Seamus
@接缝我们这是[Twilio Node.js助手库](https://twilio.github.io/twilio-node/),而不是我正在使用的那个。忘了链接,... –
只是fyi,'Twilio.Device.ready(()=> this.handleTwilioDeviceReady());'会更习惯TypeScript :) – JKillian