[英]TypeScript - export library with 'namespaces'
好的,例如,我有一个具有以下文件结构的项目:
让项目称为“我的模块”
我想像这样将这个库导入其他项目:
import { User, Home } from 'my-module/Models'
import { BaseWindow } from 'my-module/View'
我该怎么做? 如何准备.d.ts文件?
编辑:
上述文件的内容很简单,例如:
interface IUser {
name: string;
age: number;
}
type UserOptions = IUser & {
foo: string
}
class User implements IUser {
private foo: string;
name: string;
age: number;
constructor(options: UserOptions) {
this.name = options.name;
this.age = options.age;
this.foo = options.foo;
}
}
export { User, UserOptions };
我猜你想在src/Models/index.ts
是什么:
export * from "./User";
export * from "./Home";
然后,假设您已经适当设置了模块分辨率,则可以编写:
import { User, UserOptions } from "my-module/Models";
和User
和UserOptions
将分别从src/Models/User.ts
引用类和类型别名。 如果src/Models/User.ts
和src/Models/Home.ts
声明具有相同名称的符号,则我相信第一个export *
语句会获胜。
如果my-module/
的导入使您可以完成src
和dist
,则需要将完整的相对路径导入到.js
和.d.ts
文件(应该彼此相邻)。 我认为这些文件在dist
下。 如果您不喜欢导入路径中的dist
,则可以选择几种方法,但都不是很好的选择:
src
和dist
目录; 从项目的根开始排列所有文件。 import "my-module/Models"
在dist
文件夹中。 如果您的捆绑器或加载器尚未与TypeScript集成,请使用TypeScript的路径映射选项使TypeScript的模块解析行为与捆绑器或加载器的镜像相同。 .js
和.d.ts
文件或一个具有引用真实路径的main
和types
字段的package.json
文件,分别将每个导入路径重定向到dist
下的适当文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.