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 属性
    

相关内容

热门资讯

北方长龙跌2.00%,成交额6... 7月9日,北方长龙盘中下跌2.00%,截至09:35,报83.17元/股,成交6764.12万元,换...
恒而达涨2.04%,成交额60... 7月9日,恒而达盘中上涨2.04%,截至09:36,报48.44元/股,成交6019.87万元,换手...
A100ETF易方达(1596... 7月9日,A100ETF易方达(159686)开盘涨0.19%,报1.055元。A100ETF易方达...
特发信息跌2.12%,成交额9... 7月9日,特发信息(维权)盘中下跌2.12%,截至09:36,报7.86元/股,成交9507.33万...
央企科技ETF(560170)... 7月9日,央企科技ETF(560170)开盘涨0.00%,报0.882元。央企科技ETF(56017...
泰祥股份涨2.04%,成交额8... 7月9日,泰祥股份盘中上涨2.04%,截至09:36,报26.06元/股,成交870.52万元,换手...
东华测试涨2.05%,成交额2... 7月9日,东华测试(维权)盘中上涨2.05%,截至09:36,报38.34元/股,成交2227.04...
金诚信涨2.06%,成交额2.... 7月9日,金诚信盘中上涨2.06%,截至09:36,报47.15元/股,成交2.65亿元,换手率0....
科创100ETF易方达(588... 7月9日,科创100ETF易方达(588210)开盘跌0.10%,报0.997元。科创100ETF易...
创业板综ETF华夏(15956... 7月9日,创业板综ETF华夏(159563)开盘涨0.22%,报1.389元。创业板综ETF华夏(1...