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 构建和应用.d.ts文件的简单示例?_Javascript_Typescript_Typescript Typings - Fatal编程技术网

Javascript 构建和应用.d.ts文件的简单示例?

Javascript 构建和应用.d.ts文件的简单示例?,javascript,typescript,typescript-typings,Javascript,Typescript,Typescript Typings,我正在阅读本文档,试图了解TypeScript.d.ts文件或声明文件的用途: 使用外部JavaScript库或新的主机API时,需要使用声明文件(.d.ts)来描述该库的形状 有人能提供一个简单的例子说明这意味着什么以及如何应用它吗?文档可以做到这一点,但似乎有一种更简单的方法来解释它。例如,如果我想将moment.js与TypeScript一起使用,那么我需要以下momentjs.d.ts文件 但我为什么需要这个文件?换句话说,为什么我不能在没有*.d.ts文件的情况下导入和使用moment

我正在阅读本文档,试图了解TypeScript
.d.ts
文件或声明文件的用途:

使用外部JavaScript库或新的主机API时,需要使用声明文件(.d.ts)来描述该库的形状

有人能提供一个简单的例子说明这意味着什么以及如何应用它吗?文档可以做到这一点,但似乎有一种更简单的方法来解释它。例如,如果我想将moment.js与TypeScript一起使用,那么我需要以下
momentjs.d.ts
文件


但我为什么需要这个文件?换句话说,为什么我不能在没有
*.d.ts
文件的情况下导入和使用
momentjs

具体来说,您只需运行
typings install--global dt~moment
(“从源代码安装moment的全局声明文件”)

您需要声明文件的原因是,外部库可能不是用typescript编写的。因此,您必须定义库的api是什么样子,以便typescript大致了解可用的api

最简单的声明文件如下所示:

自定义打字/力矩d.ts

declare module 'moment'

这将允许您在任何需要的地方使用矩库,但您将无法使用该库的任何功能提供的任何有趣的自动完成或类型检查功能。但是,外部模块的类型检查非常有用,因为与您自己编写的代码相比,您可能不太熟悉api

谢谢-这有点帮助-我真正想要的是一个简单的例子,说明这个文件为我做了什么。换句话说,一个简单的场景,有几行代码试图使用一些简单的东西,比如momentjs,如果我没有.d.ts文件,那么这种情况就会发生。。。如果我创建了一个包含这些行的.d.ts文件,那么事情就不会再发生了……我更新了我的答案,来回答你的更新。这对你有帮助吗?