Typescript - 将命名空间A导入另一个命名空间B作为B的子命名空间,并全局暴露命名空间B
创始人
2024-05-30 15:03:13
0

前言

最近相统一管理 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 属性
    

相关内容

热门资讯

催收人员泄露用户欠款信息是否侵...   冯佳敏  案情回顾  张某在某信用卡中心申领了一张信用卡,后张某出现信用卡逾期还款情况。在拨打其...
大唐西市(00620.HK)拟... 格隆汇7月9日丨大唐西市(00620.HK)发布公告,2025年7月8日,公司与配售代理(即昌利证券...
杰夫・贝佐斯出售6.66亿美元... 杰夫・贝佐斯  一份监管文件于周二显示,亚马逊创始人杰夫・贝佐斯在 7 月的两天内出售了近 300 ...
美国关税暂缓90天的“得与失” 【环球时报特约记者 任重 环球时报记者 杨舒宇 倪浩】7月9日美国“对等关税”政策暂缓期到期在即,美...
落实“塔长制” 筑牢通信防线(...   随着主汛期来临,风雨考验在即。安徽阜阳铁塔严格落实“塔长制”要求,全力筑牢通信保障防线。按照“塔...
NASA依赖加深,SpaceX... 【环球时报综合报道】相比五角大楼或多或少还能找到几个SpaceX的“替补者”,美国国家航空航天局(N...
司法行政领域代表与中外记者见面... 经济日报北京7月8日讯(记者刘亮)在国新办举办的“新征程上的奋斗者”中外记者见面会上,5位来自司法行...
特朗普:韩国应自行支付国防费用 格隆汇7月9日|据央视,当地时间8日,美国总统特朗普在白宫内阁会议上表示,韩国应该自行支付军事防卫费...
阳宗海风景区开展应急演练模拟处...   本报讯 记者王琳报道 近日,昆明阳宗海风景名胜区在施家咀湿地开展旅游行业突发事件处置应急演练,进...
从“技术验证”转向“场景落地”... 日前,一辆特斯拉新车自己通过FSD(完全自动驾驶),找到车主完成交付;中国的无人驾驶汽车则在中东的道...