[英]How to reference Redux types in index.d.ts typescript definition file?
我想创建一个index.d.ts
文件,该文件引用了一些名为redux
的流行NPM包中的某些类型。
(在我的index.d.ts
文件的顶部)
/// <reference path="../../../node_modules/redux/index.d.ts" />
这不起作用。 我怀疑这是因为redux/index.d.ts
文件根本没有声明命名空间。 当我编辑redux/index.d.ts
文件并用declare namespace Redux { ... }
包装所有内容时,一切正常。 我在redux@^4.0.0
。
/// <reference types="redux" />
除非我安装了NPM软件包@types/redux/@3.6.31
,它的旧版过时类型与发布的版本不匹配,否则这不起作用。 最新版本的@types/redux
包只是一个不推荐使用的占位符,它表示使用官方的redux
包装类型(不起作用)。
import { Middleware } from "redux";
当我将上面显示的import
语句放入我的index.d.ts
文件中时,文件中的每个声明都会中断(即我依赖于我自己的index.d.ts
文件的每个其他地方都停止读取任何类型的文件)从我读过的内容中,将一个import
语句放在d.ts
文件的类型中会导致Typescript d.ts
文件视为模块,而不是定义文件。
@types/redux@3.6.31
,而不是最新弃用占位符版本@types/redux
。 node_modules/redux/index.d.ts
以包装名称空间中的所有内容,例如declare namespace Redux { ... }
。 我的项目是使用create-react-app
v2作为JavaScript项目引导的。 我只是使用d.ts
文件来记录一些接口。 我的编辑器VSCode最新/稳定。
由于typescript 2.9( 请参阅导入类型一节 ),您可以使用import()
来使用类型定义文件,而无需实际导入模块本身。 例如,此定义将使用redux包中的Action
类型:
declare function createCustomAction(): import("redux").Action
无需在顶部使用三次斜杠指令引用任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.