首页 > 解决方案 > TS - 使用来自第三方类型的接口

问题描述

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

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

有任何想法吗?

标签: javascripttypescripttypes

解决方案


FlickityOptions不是从 导出的@types/flickity,因为声明文件设置 export = FlickityFlickityOptions位于导出的命名空间之外。考虑提交针对DefinitelyTypedFlickityOptions导出的问题。作为一种解决方法,您可以从构造函数中提取FlickityOptions类型:Flickity

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

(比较这个答案。)


推荐阅读