当前位置: 首页 > 编程笔记 >

TypeScript 从npm导入模块

葛胡媚
2023-03-14
本文向大家介绍TypeScript 从npm导入模块,包括了TypeScript 从npm导入模块的使用技巧和注意事项,需要的朋友参考一下

示例

如果模块具有类型定义文件(d.ts),则可以使用import语句。

import _ = require('lodash');

如果您没有模块的定义文件,TypeScript将在编译时抛出错误,因为它找不到您要导入的模块。

在这种情况下,可以使用正常的运行时require功能导入模块。但是,这将其返回为any类型。

// _变量的类型为any,因此TypeScript将不执行任何类型检查。
const _: any = require('lodash');

从TypeScript 2.0开始,当没有模块的类型定义文件时,还可以使用简写的环境模块声明来告诉TypeScript模块存在。但是,在这种情况下,TypeScript将无法提供任何有意义的类型检查。

declare module "lodash";

// 您现在可以按照任何希望的方式从lodash导入:
import { flatten } from "lodash";
import * as _ from "lodash";

从TypeScript 2.1开始,规则进一步放宽了。现在,只要node_modules目录中存在一个模块,即使没有任何地方的模块声明,TypeScript都将允许您导入它。(请注意,如果使用--noImplicitAny编译器选项,则以下内容仍会生成警告。)

// Will work if `node_modules/someModule/index.js` exists, or if `node_modules/someModule/package.json` has a valid "main" entry point
import { foo } from "someModule";
           

 类似资料:
  • 模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(

  • 问题内容: 我正在第一个NPM模块上工作。之前,我曾短暂地使用过Typescript,但一个大问题是,对于许多模块,没有可用的定义文件。因此,我认为用打字稿编写模块是一个好主意。 但是,我找不到有关最佳方法的任何信息。我发现了一个相关的问题“ 我可以在coffeescript中编写npm软件包吗? ”,那里的人们建议只发布javascript文件。但是与coffeescript文件相比,如果在打字

  • 问题内容: 我正在尝试使其工作,但似乎无法在SO的任何地方找到解决方案。尝试编译此单文件应用程序时: 使用命令“ tsc app.ts –module’commonjs’”,我得到以下错误(不使用– module标志给我一个额外的错误,告诉我我需要它来编译外部模块): 问题答案: TypeScript需要知道它存在。 为节点安装类型definitinos: 旧答案 遵循这两个步骤 从此处下载文件:

  • 我撰写并发表了以下内容:https://github.com/justin-calleja/pkg-dependents 现在我写这个包在TypeScript:https://github.com/justin-calleja/update-dependents 我想在update dependents中重复使用pkg dependents(IndexInfoDict)中定义的类型,我想检查是否有

  • 问题内容: 我应该使用 要么 当 导入模块 ,并和有 改变名字没有必要/愿望 ()? 有什么区别吗?有关系吗? 问题答案: 假设是中的模块或包,没有区别*,那就没关系。这两个语句具有完全相同的结果: 如果不是模块或软件包,则第二种形式将不起作用;引发回溯: *在Python 3.6及更高版本中,包含其他模块的软件包的初始化顺序存在一个错误,即在软件包 的加载阶段,在子模块中使用 该软件包 会失败,

  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另