导出并发布 Typescript 中的所有类型和接口

2023-12-07

我正在尝试发布一个打字稿库。我不清楚如何公开所有类型和接口。这是我的设置:

mylib
  ├──src
  │  ├──types
  |  |  └──mytypes.ts
  │  └──index.ts
  ├──package.json
  └──tsconfig.json
//index.ts

import {MyInterface} from './types/mytypes.ts';

const my_main_name = {
  myfunc: function(param1:MyInterface):void{
    console.log(param1.a);
  }
}

//mytypes.ts

export interface MyInterface {
  a:string
}

我通过设置生成声明文件tsconfig.json param "declaration":"true".

现在我想使用这个库作为另一个库的依赖项。

mylib
yrlib
  ├──src
  │  └──index.ts
  ├──package.json
  └──tsconfig.json
//yrlib/package.json
{
 ...
 "dependencies":{
    "mylib":"file:../mylib/"
  }
}

//yrlib/src/index.ts

import * as mylib from 'mylib';

let a:mylib.MyInterface = ...
      // ~~ Namespace has no export member for MyInterface

我得到自动完成mylib因为它是出口的。

我的问题是如何查看所有类型和接口mylib内部模块yrlib?

因为它们可能有数百个并且位于所有不同的文件和文件夹中。

我应该一一导出吗?最佳实践是什么? 有没有办法一次性导出所有类型?

And how "typying":"dist/index.d.ts" in package.json适合这一切吗?应该将所有类型放在一个文件中吗?为什么 Typescript 不生成这个文件?

我应该使用包含所有内容的命名空间吗?我找不到关于这个主题的完整解释。


我最近遇到了同样的问题,也是我发现的发布您的文章的唯一方法类型-空格代码(例如:类型、接口)以及您的值空间代码(例如:函数、类、变量)是导出一个namespace其中包含一切。

另一个奇怪的事情是,为了导出到namespace导入的东西,语法是:

import * as mymod from './mymod';
import * as mytypes from './mytypes';

export namespace mylib {
  export import mod = mymod;
  export import types = mytypes;
}

随着export import syntax.

不幸的是,这在我的 eslinter 中将在警告/错误中解决,因为显然它读取mod and types as unused-vars.

我不明白为什么文档中没有对此主题的完整解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导出并发布 Typescript 中的所有类型和接口 的相关文章

  • React Native 扩展 NativeModules TypeScript 类型

    我有一个本机模块 我想输入它 这是我的模块界面的示例 export interface BBAudioPlayer playSound sound click tada gt Promise
  • Angular 2 获取当前路线

    所以我需要以某种方式检查我是否在主页上执行某些操作 而在其他页面上则不执行此操作 该组件也在所有页面上导入 如果我在主页上 如何检测该组件 Thanks 尝试这个 import Router from angular router expo
  • 检查 TypeScript 中是否选中复选框元素

    我的 html 文件上有一个复选框
  • ES6继承:使用`super`访问父类的属性

    JavaScript 的super关键字 当我在 Chrome Babel TypeScript 上运行代码时 得到了不同的结果 我的问题是哪个结果是正确的 规范的哪一部分定义了这种行为 下面的代码 class Point getX con
  • 是否有一种类型安全的方法可以将较大的对象减少()为打字稿中的新类型?

    我有一个表示数据库查询结果的数据结构 它是一个具有许多属性的对象 所有属性都是标量 在我的例子中 都是字符串或数字 我想提取这些属性的一部分并填充一个具有已定义形状的新对象 const input Record
  • VSCode TypeScript 问题Matcher `$tsc-watch` 未观看

    我试图避免使用watch true in a tsconfig json配置 通过 VSCode 的任务 我正在使用基本问题匹配器 tsc watch但它没有启动tsc构建时处于监视模式 我正在添加gulp支持 我看到有gulp watch
  • 升级到 firebase js sdk v8 后,在“firebase”中找不到导出“firestore”(导入为“firebase”)

    我已将 firebase JS SDK 从 v7 升级到 v8 0 0 并且像这样导入 firebase import as firebase from firebase 访问以下任何一项都会导致以下错误 firebase firestor
  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • Angular 5 - 使用对象进行表单控制

    我目前正在开发一个由 Django 支持的 Angular 应用程序 该应用程序的一部分是它需要显示成员列表 成员数组看起来有点像这样 name John Smith id 3 score set name Jane Doe id 7 sc
  • 打字稿 - 字符串'不可分配给类型'FC

    我收到以下错误 Type props PropsWithChildren lt amount number gt gt string is not assignable to type FC lt amount number gt Type
  • Angular 6 StaticInjectorError(平台:核心)没有提供者

    我有一个角度版本为 4 的项目 我尝试将项目更新为 6 个角度版本 我修复了编译器在构建产品时告诉我的所有错误 他们有很多 现在项目编译没有错误 但在浏览器中无法运行 现在我被困住了 有人可以帮我解决这个问题吗 我认为这在某种程度上与延迟加
  • 浏览器中缺少 Angular 12 源地图

    我们已经升级到角12最近遇到一个问题 即浏览器源映射丢失 因此我们无法调试我们的组件文件 因为没有任何组件文件 谁能建议我缺少什么 Angular 12 更改了默认的 ng build 以使用 生产 配置 你想要 sourceMap 所以尝
  • 访问 TypeScript 数组的最后一个元素

    TypeScript 中有访问数组最后一个元素的符号吗 在 Ruby 中我可以说 array 1 有类似的东西吗 您可以通过索引访问数组元素 数组中最后一个元素的索引将是数组的长度 1 因为索引是从零开始的 这应该有效 var items
  • Typescript:如何定义生成可调用实例的类

    我目前正在将 JS 类转换为 TypeScript 该类扩展自 NPM 模块节点可调用实例 https www npmjs com package callable instance 这使得它在内部成为 Function 的子类 类的实例可
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • Angular 4+为ngComponentOutlet动态创建的组件分配@Input

    在 Angular 4 中动态创建一个可以使用的组件ngComponentOutlet指示 https angular io docs ts latest api common index NgComponentOutlet directi
  • 如何在 firebase.auth 中更新用户电话号码(js,ts)

    我如何更新在 firebase auth 中用于身份验证的用户电话号码 Firebase 给出方法 updatePhoneNumber phoneCredential 但我们需要给予电话凭证 此凭证采用对象 interface AuthCr
  • TypeScript 提供(未指定)泛型类型作为泛型参数

    我希望提供一个泛型类型作为类型参数无需先将其解析为具体类型 换句话说 我正在寻找一种方法来指定从基类继承时可以使用的类型映射函数 示例 不正确的 语法希望比我能解释得更好 abstract class RunIt
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • 具有客户端/服务器节点设置的 Webpack?

    我正在尝试为带有节点后端服务器的 Angular2 应用程序设置基于 webpack 的流程 经过几个小时的努力 我已经成功地让客户端愉快地构建了 但我现在不知道如何集成我的服务器构建 我的服务器使用生成器 因此必须以 ES6 为目标 并且

随机推荐