北京网站建设公司公司,青岛网站厉害的公司,建筑行业大数据平台,创业平台是什么意思前言
最近相统一管理 ts 中的类型声明#xff0c;这就需要将各模块下的命名空间整合到全局的命名空间下#xff0c;牵涉到从别的文件中引入命名空间并作为子命名空间在全局命名空间中统一暴露。
将命名空间A导入另一个命名空间B作为B的子命名空间 文件说明 assets.ts 文件中…前言
最近相统一管理 ts 中的类型声明这就需要将各模块下的命名空间整合到全局的命名空间下牵涉到从别的文件中引入命名空间并作为子命名空间在全局命名空间中统一暴露。
将命名空间A导入另一个命名空间B作为B的子命名空间 文件说明 assets.ts 文件中有包含资产相关类型声明的命名空间 Assets export namespace Assets {export interface TV {id: number;price: string;}
}global.ts 文件中有全局统一暴露的命名空间 GlobalType export namespace GlobalType {export interface User {prop: string;}
}需求将 Assets 作为 GlobalType 的子命名空间 import { Assets } from ./assets;export namespace GlobalType {export import $Asstes Assets; // 这里就将 Assets 命名空间作为 GlobalType 的子命名空间了export interface User {prop: string;}
}全局暴露命名空间B index.d.ts import { GlobalType } from /global;export GlobalType;
export as namespace GlobalType;文件中直接使用全局命名空间进行类型声明 test.ts const TV1: GlobalType.Assets.TV {id: 001,price: 3888
} // ts 检验通过const TV2: GlobalType.Assets.TV {id: 002,
} // 提示没有 price 属性