为什么在'd.ts`文件中使用`declare`字

时间:2017-01-19 18:56:32

标签: typescript

每当Google.Protobuf生成tsc个文件时,其中都会包含d.ts个字词,如下所示:

declare

现在,export declare class Moment { name: string; } 文件中的declare用于向ts说明不应为tsc的类型生成js。所以它在declare文件中是有意义的。但是,无论如何都不会从ts文件生成js,为什么要在那里使用这个词?

我尝试从上面的代码中删除d.ts字词:

declare

并且它的工作原理相同。

我找到了以下here

  

如果文件的扩展名为.d.ts,那么每个根级别定义必须   将declare关键字作为前缀加上前缀。这有助于说清楚   作者没有TypeScript发出的代码。该   作者需要确保声明的项目在运行时存在。

这是export class Moment { name: string; } 文件中declare的唯一目的吗?

请注意,这与this one的问题不同,因为我的问题是在d.ts文件中使用declare,而不是d.ts个文件。

1 个答案:

答案 0 :(得分:0)

“.d.ts”文件和“.ts”都由同一个转发器处理。而keywoard的含义是一样的。根据{{​​3}}和documentation

  

declare关键字用于您想要的环境声明   定义一个可能不是源自TypeScript文件的变量。

declare关键字使得transpiler不会生成任何真正的JavaScript代码,并允许在其他TypeScript文件中使用“声明”对象。