Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';TypeScript包含@types而不包含JS库的原理是什么?_Javascript_Typescript - Fatal编程技术网

Javascript 什么';TypeScript包含@types而不包含JS库的原理是什么?

Javascript 什么';TypeScript包含@types而不包含JS库的原理是什么?,javascript,typescript,Javascript,Typescript,通过参考@types/foo,我们可以在TypeScript代码中使用JavaScript库的功能。但是为什么呢?它只定义了一组数据类型和接口,但实际的逻辑仍在JS代码中。在不包含原始JS库的情况下,代码如何运行 例如,为了在TypeScript中实现地图服务,我们只包括@types/googlemaps,而不包括JS库googlemaps。为什么会这样?没有实际的库,代码无法运行。通常,您将对@types具有开发依赖性,并对实际库具有完全依赖性 这些类型用于为库回填类型信息,以便为您提供自动补

通过参考
@types/foo
,我们可以在TypeScript代码中使用JavaScript库的功能。但是为什么呢?它只定义了一组数据类型和接口,但实际的逻辑仍在JS代码中。在不包含原始JS库的情况下,代码如何运行


例如,为了在TypeScript中实现地图服务,我们只包括
@types/googlemaps
,而不包括JS库
googlemaps
。为什么会这样?

没有实际的库,代码无法运行。通常,您将对
@types
具有开发依赖性,并对实际库具有完全依赖性

这些类型用于为库回填类型信息,以便为您提供自动补全、提示和类型检查,但在运行时它们实际上不会为您提供任何信息


有些情况下,包将提供自己的类型,因此您不需要
@types
开发依赖项,但几乎没有相反的情况(唯一的例外是,
lib.d.ts
没有包含浏览器等支持的功能,并且您临时使用了
@types
定义来让编译器知道它).

一般来说,不,这不是它的工作方式。添加
@types/googlemaps
只包括该库的类型定义,这样您就可以开发,它不会取代该库。该库仍然必须在运行时出现。它会是什么样子?您能给出一个不包括googlemaps库的工作吗?哎呀,我很快意识到我的google示例谷歌地图是错误的,因为我实际上在我的html中嵌入了它的api标记。在这种情况下,没有必要包含额外的
googlemaps
npm包。感谢您的评论!非常感谢!我很快意识到我的谷歌地图示例是错误的,因为我实际上在我的html中嵌入了它的api标记。在这种情况下,没有need包括一个额外的
googlemaps
npm包。