javascript - TS - 使用来自第三方类型的接口
问题描述
基本上我@types/flickity
用来添加 Flickity 的定义,但是当我尝试FlickityOptions
在我自己的脚本中使用时,我得到一个错误提示Cannot find name 'FlickityOptions'
。
我已尝试通过添加typeRoots
并tsconfig.json
手动添加文件,files
但仍然出现错误,也尝试使用/// <reference
.
有任何想法吗?
解决方案
FlickityOptions
不是从 导出的@types/flickity
,因为声明文件设置 export = Flickity
并FlickityOptions
位于导出的命名空间之外。考虑提交针对DefinitelyTyped已FlickityOptions
导出的问题。作为一种解决方法,您可以从构造函数中提取FlickityOptions
类型:Flickity
import Flickity = require("flickity");
type FlickityOptions =
typeof Flickity extends {new(selector: string | Element, options?: infer FO): Flickity} ? FO : never;
(比较这个答案。)