编程技术记录

世界你好!

最近调研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();

© Beli. All Rights Reserved.