我正在用Typescript建立一个大库,其中包含100个单独的ts文件。以前,我为所有类都使用了导出模块XXX(以后更名为导出名称空间XXX),但是正如书中所说,这不是推荐的方式,我应该改用import。
所以我尝试导入。这工作正常:
import * as mylib from "./source/source.ts";
但是由于我有100个文件,所以我不想为所有文件添加这样的行。我希望可以通过mylib变量访问所有类。
所以我尝试了这个:
import * as mylib from "./source/";
但是,一旦这样做,我就会得到:找不到模块“ ./source/”
有没有办法从一行中包含多个文件的文件夹中导入所有类?
tsc提供的两种模块解析策略都不支持这种行为。您需要什么进口声明
import * as mylib from "./source/";
实际要做的是按以下顺序执行检查:
1. (does package.json have a typings key? If so, import this file)
2. import * as mylib from "./source/index.ts";
3. import * as mylib from "./source/index.tsx";
4. import * as mylib from "./source/index.d.ts";
我假设您在这里使用节点样式的模块分辨率,您可能会这样做,因为这是推荐的方法。检查打字稿文档以获取有关如何在打字稿中完成模块解析的更多详细信息。
通常,您要尝试完成的工作是创建一个index.d.ts
文件,该文件用作您从中导出其余模块的入口。我以angular2为例:常见的angular2导入如下所示:
import { Injectable } from '@angular/core'
core
只是位于目录内的@angular
目录。就像您的source
目录一样。但是,在核心目录中有一个index.d.ts
文件:
/**
* @module
* @description
* Starting point to import all public core APIs.
*/
export * from './src/metadata';
export * from './src/util';
export * from './src/di';
....
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句