作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Twilio.js我的应用程序(不是 Twilio Node)上的库,并且这个库没有可用的模块或类型。只有一个 Twilio
可以使用的全局变量可用。
为了避免 IDE 中的错误,最简单的环境声明是这样的:
declare const Twilio: any;
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
来自所有接口(interface)的关键字,它仍然有效。我还应该离开它吗?它有什么作用? Twilio.Device.ready(this.handleTwilioDeviceReady.bind(this));
, 将鼠标悬停在 IDE 上时,IDE 会给我以下信息:Twilio
:const Twilio: Twilio.Base
Twilio.Device
:(property) Twilio.Base.Device: Twilio.Device
Twilio.Device.ready
:(method) Twilio.Device.ready(handler: Twilio.DeviceCallback): void
Twilio.Base
出现在 IDE 中,而是显示:Twilio
:const Twilio: Twilio
Twilio.Device
:(property) Twilio.Device: Twilio.Device
最佳答案
我已经查看了 API,我认为下面的内容应该是作为环境声明文件的一个很好的起点。
declare namespace Twilio {
class Connection {
// Constructor does not appear to be available to user.
private constructor();
// Add Connection Methods and Properties Here
}
// Not immediately clear if Twilio.Device is a class or not.
interface IDevice {
setup(token, options);
ready(handler);
offline(handler);
incoming(handler);
connect(params) : Connection;
// Add Remainder of Twilio.Device properties here.
}
/**
* Twilio.Device appears to be a singleton object that
* you don't instantiate yourself. You can use
* the below to declare its presence.
*/
let Device : IDevice;
}
declare const Twilio: Twilio.Base;
IDevice
有
ready
方法,它接受一个传递了
IDevice
的函数参数。对象,并且预计不会返回任何内容。这种函数的类型签名是:
(device : IDevice) => void;
ready((device : IDevice) => void) : void;
type DeviceCallback = (device : IDevice) => void;
interface IDevice {
...
ready(handler: DeviceCallback) : void;
offline(handler : DeviceCallback) : void;
...
}
关于typescript - 如何在 TypeScript 中为 Twilio 全局 JS 库创建环境声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317942/
我是一名优秀的程序员,十分优秀!