首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入已发送index.d.ts的包

导入已发送index.d.ts的包
EN

Stack Overflow用户
提问于 2018-07-16 06:57:59
回答 1查看 38关注 0票数 0

例如,

代码语言:javascript
复制
yarn add http-status-codes

如果我从该包中导入某些内容,如

代码语言:javascript
复制
import { BAD_GATEWAY } from 'http-status-codes';

打字本抱怨“找不到模块http-状态代码”。但是http-status代码已经发布了自己的index.d.ts类型定义文件。

由于某些原因,这种行为是,只能使用"es6“:”es6“或高于(由于某种原因"es5"没有问题)进行复制。

为什么我不能使用可用的打字文件?这难道不是现代包应该像开箱即用的方式,也就是,而不是,需要额外的yarn add @types/http-status-codes吗?(反正也不存在)。如何从包含其类型定义的包中导入?为什么这不是默认的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 07:18:35

如果指定es6,则该模块系统将默认为该版本的ES ( ES2015模块系统)的本机模块系统。来自文档

有两种可能的模块解析策略:节点和经典。您可以使用--模块解析标志来指定模块解析策略。如果未指定,则默认为-模块AMD \ ES2015或Node否则。

您可以阅读文档以获得更多信息,但clasic解析策略不使用node_modules查找定义,而node则模仿查找模块的节点方式(在node_modules中查找定义)。

您需要在tsconfig.json中添加moduleResolution选项:

代码语言:javascript
复制
{
    "compilerOptions": {
        "moduleResolution": "node",
        "target": "es6",
    }
}

这适用于es5,因为对于es5,模块系统默认为"CommonJS" (见文档),默认情况下使用节点解析。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51356195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档