javascript - 是否可以声明自己的 typescript 模块并像 npm 包一样导入它们

标签 javascript typescript

NPM 包的导入方式如下:

import { Button, Table } from "@material-ui/core";

这非常酷,因为路径“@material-ui/core”可以编译到其他文件中,并且仍然独立于复制文件的文件夹结构工作。

现在我声明了自己的类,有很多导出,我喜欢在很多文件之间共享。例如,我有:

root/shared/ui/ui-components.ts
root/app/pages/home/home-page.ts
root/app/pages/home/components/home-tile.ts

我想在 home-page.tshome-tile.ts 中导入 ui-components.ts 文件> 文件。两者均按如下方式导入:

主页:

import { ... } from "../../../shared/ui/ui-components";

对于家庭瓷砖:

import { ... } from "../../../../shared/ui/ui-components";

请注意,我们必须进入主磁贴的一个文件夹才能访问相同的组件。直接将其复制到其他文件将无法工作。

有没有办法让我可以写

import { ... } from "ui-components";

home-page.tshome-tile.ts 文件中?

最佳答案

您可以通过 tsconfig.json 中的路径添加应用程序源:

{
  "compilerOptions": {
    ...,  
    "baseUrl": ".",
    "paths": {
      ...,
      "@app/*": ["app/*"],
      "@components/*": ["components/*"]
    }
  }
}

然后您可以从 app/或 Components/绝对导入,而不是相对于当前文件导入:

import {Configuration} from "@components/configurations";

注意:如果路径为

,则必须指定baseUrl

关于javascript - 是否可以声明自己的 typescript 模块并像 npm 包一样导入它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115822/

相关文章:

javascript - 使用成员函数扩展 React.js 存储数据结构?

angular - 在 Angular 组件中使用 typescript getter 或局部变量作为服务变量

javascript - 选择列表不刷新

unit-testing - 在 typescript 中使用类型作为值

typescript - 有没有办法在 TypeScript 模块中访问 "exports"对象?

javascript - D3树垂直分离

typescript - Electron,Typescript-函数中的其余参数不起作用

javascript - 在 XULRunner 中禁用 window.onbeforeunload 和 window.onunload

javascript - XMLHttpRequest。发送非 UTF-8 格式的数据。不可能完成任务吗?

javascript - 默认水平滚动的表格