启发来源:
当时在询问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出去 否则外部无法找到interfacename: 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: "书的摘要"}