首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其他包是如何使用包类型记录代码的?

其他包是如何使用包类型记录代码的?
EN

Stack Overflow用户
提问于 2019-12-27 08:00:17
回答 1查看 86关注 0票数 0

导入带有typescript代码的包时。消费者会使用类型记录或转写代码(例如,ES5的类型记录)。

场景1:如果使用者使用转置代码(它不在类型记录中)。VSCode如何能够从包类型中推荐自动完成?

场景2:如果包与类型记录文件一起使用。

  1. 如果使用者没有使用类型记录,会发生什么情况?
  2. 消费者端的捆绑是如何发生的?
EN

回答 1

Stack Overflow用户

发布于 2019-12-27 11:54:25

TL;DR

场景1:这是公共NPM包最常见的场景,编辑器使用包含类型声明的外部.d.ts文件(场景2):我只在内部库中看到了这种情况

  • 1)您需要自己编译TS,但这可能没有必要,因为库几乎总是有编译到js的版本。
  • 2)这可能有很多方面,最好的情况是库为您提供了一个预优化的JS,它只与您的代码捆绑在一起,最糟糕的情况是,您必须确保安装了所有正确的依赖项,以便库能够与代码一起编译,并且它们需要与您自己使用的依赖项兼容。在我看来,这不值得麻烦,对于NPM包有类型声明就足以达到TypeScript所能提供的类型安全级别。

长版

人们如何通过NPM分发基于TypeScript的代码有几十种变体。我认识的大多数大型库都会提供它们编译的JS (而且常常是缩小的)JS,并添加.d.ts声明文件以支持编辑器--这些文件可能是手工编写的,也可能是通过使用代码库的tsc生成的。VSCode也为JavaScript文件使用它的TypeScript语言服务器,因此在许多情况下,它甚至不需要额外的声明文件来为您提供基本的自动完成。库可以在types、VSCode和其他编辑器会在那里找到类型中声明一个会在那里找到类型字段。有一个相当大的社区为明确型上的大多数库维护大多数非官方类型声明--对于那些晦涩难懂的库,您可能不走运。

几个例子

材料用户界面

反应

角度

jQuery

塞内卡

重要的带走:

  • 在JS生态系统和TS生态系统中,没有单一的方式来做事情。
  • 您使用的大多数类型声明不是正式声明,而是由社区主要是关于确定性类型的维护的声明。
  • 这些类型可能对你撒谎(可能是过时的,完全错误的,或者是旧的TS版本)。
  • TypeScript是JavaScript的超集,它具有定义上的所有相同的问题。
  • 所有类型在运行时都会被擦除,最后您将运行普通的JavaScript,这需要所有这些。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59497719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档