每当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
个文件。
答案 0 :(得分:0)
“.d.ts”文件和“.ts”都由同一个转发器处理。而keywoard的含义是一样的。根据{{3}}和documentation:
declare关键字用于您想要的环境声明 定义一个可能不是源自TypeScript文件的变量。
declare
关键字使得transpiler不会生成任何真正的JavaScript代码,并允许在其他TypeScript文件中使用“声明”对象。