TS-使用第三方输入的界面

时间:2018-10-10 07:55:12

标签: javascript typescript types

基本上,我正在使用@types/flickity添加Flickity的定义,但是当我尝试在自己的脚本中使用FlickityOptions时,会出现错误,提示Cannot find name 'FlickityOptions'

我尝试在typeRoots中添加tsconfig.json并通过files手动添加文件,但仍然出现错误,也尝试使用/// <reference

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

FlickityOptions不是从@types/flickity导出的,因为声明文件sets export = FlickityFlickityOptions在导出的命名空间之外。考虑将FlickityOptions导出到filing an issue against DefinitelyTyped。解决方法是,可以从FlickityOptions构造函数中提取Flickity类型:

import Flickity = require("flickity");
type FlickityOptions =
    typeof Flickity extends {new(selector: string | Element, options?: infer FO): Flickity} ? FO : never;

(与this answer比较。)