例如
export declare interface A {}
export interface A {}
在一个存在顶级import的.d.ts文件中,export declare和export的区别如下:
export declare用于声明一个类型、接口、变量、函数等的类型定义,而不是实际导出实现的内容。它只是将类型定义暴露给其他模块使用,其他模块可以使用该类型定义,但不会包含实现代码。
例如:
export declare interface Person {
name: string;
age: number;
}
这里声明了一个名为Person的接口,但并没有实际的实现代码。
export用于导出一个变量、函数或类的实际实现。它可以将变量、函数或类的实现代码暴露给其他模块使用。
例如:
export const PI = 3.1415926;
export function sayHello(name: string) {
console.log(`Hello ${name}`);
}
export class Rectangle {
constructor(public width: number, public height: number) {}
getArea(): number {
return this.width * this.height;
}
}
这里使用export将常量PI、函数sayHello和类Rectangle的实现代码暴露给其他模块使用。
总的来说,export declare用于声明类型定义,而export用于实际导出实现代码。