在 package.json 中指定多个类型定义文件

Posted

技术标签:

【中文标题】在 package.json 中指定多个类型定义文件【英文标题】:Specify multiple type definitions files in package.json 【发布时间】:2017-03-29 23:37:26 【问题描述】:

我正在为节点库[1] 创建类型定义,但在组织文件时遇到了麻烦。

我已将 typings 字段添加到 package.json 并且效果很好,我遇到的问题是我想指定多个类型定义文件,因为库本身分为两个入口点:

样式化组件 样式化组件/原生

所以我为这两个入口点创建了类型定义,但我不确定如何正确使用typings 字段。这是我的结构(我只包括相关的):

├── index.js
├── native.js
├── package.json
├── typings
│   ├── styled-components-native-test.tsx
│   ├── styled-components-native.d.ts
│   ├── styled-components-test.tsx
│   └── styled-components.d.ts

styled-components.d.ts 我有主要定义,应该在import styled from "styled-components" 中加载。 在styled-components-native.d.ts 我有本机入口点的定义,应该在import x from "styled-components/native" 加载。

package.json 中的 typings 字段指向 typings/styled-components.d.ts,但这不会使 styled-components-native.d.ts 定义可用。

我也尝试使用index.d.ts 并引用(使用三斜杠符号)其他两个文件,但没有成功。

那么有没有办法做到这一点?

[1] 这是我的公关https://github.com/styled-components/styled-components/pull/152

【问题讨论】:

【参考方案1】:

试试:

├── index.js
├── index.d.ts
├── native.js
├── native.d.ts

应该正常工作,因为这就是像 @angular/material 这样的包如何为此类导入捆绑它们的类型。

基本上,typescript 编译器会寻找与 javascript 文件同名的 .d.ts 文件。

(编辑:抱歉没有意识到这个问题太老了......无论如何都会在这里留下答案,以防它帮助某人)

【讨论】:

以上是关于在 package.json 中指定多个类型定义文件的主要内容,如果未能解决你的问题,请参考以下文章

npm 脚本使用 package.json 中指定的版本重命名文件

yarn berry foreach 工作区未按 package.json 中指定的顺序构建包

在 aws 上部署应用程序时在 package.json 中指定节点 js 版本

sh 使用package.json(engines.node)中指定的节点版本。使用jq和nvm。如果要安装版本,则会在缺少版本时提示。

如何在其中的包中指定的纱线工作区中安装可执行文件?

sudo:没有 tty 存在,也没有在 github 操作中指定 askpass 程序