启发来源:
当时在询问chatGPT关于declear的作用,
出现了:
声明模块或命名空间:
declare namespace MyNamespace { // 命名空间
interface MyInterface { // 声明模块
name: string;
age: number;
}
}
let obj: MyNamespace.MyInterface = { name: 'Alice', age: 30 };
- 使用
declare
可以描述一个模块或者命名空间的结构,但并不提供实际的实现。这在定义外部模块的类型或者全局命名空间时特别有用。 - 自己实现的:
-
namespace MyNamespace { export interface MyInterface { //需要export出去 否则外部无法找到interface name: string; age: number; } export interface MyInterfaceSecond { book: string; id: number; } export interface showBooks { name: string; totle: number; title: string; subtitle: string; } } let obj: MyNamespace.MyInterface = { name: "你好", age: 8 }; let secondObj: MyNamespace.MyInterfaceSecond = { book: "书名", id: 1288 }; let thirdObj: MyNamespace.showBooks = {name: "书名", totle:88, title: "书名", subtitle: "书的摘要"}