通过引用@types/foo,我们可以在TypeScript代码中使用JavaScript库的功能。但是为什么呢?它只定义了一组数据类型和接口,但是实际的逻辑仍然在JS代码中。如果不包含原始的JS库,代码如何运行?
例如,为了在TypeScript中实现地图服务,我们只包含没有JS库googlemaps的@types/googlemaps。为什么会这样呢?
发布于 2017-12-18 09:38:23
没有实际的库,代码就无法运行。通常,您将具有对@types的开发依赖和对实际库的完全依赖。
这些类型可以为库提供自动完成、暗示和类型检查的回填类型信息,但它们实际上不会在运行时给出任何信息。
在某些情况下,包将提供自己的类型,因此您不需要@types开发依赖关系,但几乎没有相反的情况(唯一的例外是,lib.d.ts没有包含浏览器支持的特性等,您暂时使用了@types定义来让编译器知道)。
https://stackoverflow.com/questions/47865230
复制相似问题