typescript 聚合多个文件的多个类到一个命名空间

最近调研VSCode的插件开发,选择typescript语言,看了typescript的官方的指导手册关于 namespace 的使用方式,我尝试类官方给出的一个文件和多个文件场景下使用namespace 。 结果一个文件使用namesapce没有问题,但是多个文件共享namespace,VSCode的语法提示总是提示找不到xxxx。 重点说明下,插件工程使用 yo code 创建的,namespace的示例也是官方的,官方的多个文件共享一个命名空间的方法是使用 /// <reference path = "xxxx.ts" /> 指令。 百思不解,百度依然不解。幸好与多年的c++经验,借鉴c++的namespace中导入符号的方法,我找到类一条可行的路—-综合利用 nameapce , import as , extends,示意如下: a.ts内容 //a.ts export class A { } b.ts内容 //b.ts export class B { } c.ts内容 //c.ts export class C { } 然后创建一个聚合的ts文件,将 a,b,c的符号以子类继承方式聚合 my.ts //my.ts import * as _a from 'a'; import * as _b from 'b'; import * as _c from 'c'; expport namespace my { export class A extends _a.A {} export class B extends _b.B {} export class C extends _c.C {} } 使用示意: import {my} from 'my'; let tmp = new my.A();

January 21, 2020 · 1 min · holdsky