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

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...