我有一个正在运行的ES2015项目,我想迁移到TypeScript。
在我的解决方案中,我使用ES2015导入来导入第三层模块(通过npm安装),如下所示:
import {ClassXY} from 'moduleXY'
在我的项目中设置TypeScript后,TypeScript编译器报告以下错误:
error TS2307: Cannot find module 'moduleXY'
如何在TypeScript中使用上述ES2015导入语句?
我正在寻找一个解决方案,而不是通过.d.ts
安装相应的typings
声明...让我们假设模块moduleXY
是一个不分发它的库自己的.d.ts
声明,并且在DefinitelyTyped上没有可用的声明(或声明已过时)。
我必须为模块moduleXY
的类型定义创建存根吗?我怎么用最小的努力才能做到这一点?
答案 0 :(得分:2)
如果没有模块的打字,那么你可以
require
它像常规的commonjs模块
declare require:any;
const moduleXY:{
classXY:any
} = require("moduleXY");
在.ts文件中,并确保该文件包含在Typescript编译器中。您不需要完全声明该模块,您仍然可以在开始添加类型的地方受益。