visual studio 具有抽象语法的代码

visual studio code with abstract syntax

如何在 "Visual Studio Code" 中使用 abstract 关键字?

这是Typescript 1.6版本中加入的,但在Visual Studio中不起作用代码: https://github.com/Microsoft/TypeScript/issues/3578

Typescript 1.6 中没有抽象功能。您引用的 link 是针对 Typescript 1.6 的封闭建议。

Typescript 1.5 是该语言的当前最新版本。

就是说,you can fake a level of abstract functionality.不过我不推荐这样做,因为它似乎不值得开销,而且使用它几乎没有什么好处。

export class BaseClass {
    public render() {
        console.log('Base Start');
        this.renderAbstract();
        console.log('Base Start');
    }

    renderAbstract() { throw new Error('This method is abstract and must be overrided.'); }
}

export class ChildClass extends BaseClass {
    public renderAbstract(): void {
        console.log('- Child -');
    }
}

编辑: 我错了,该建议正在合并到 Typescript 1.6 版本中。但是,它还没有发布,所以你还不能使用这个功能

如果您今天真的想在 VSCode 中使用 abstract,这是可能的,尽管不受支持 ;)

您可以执行命令 npm install typescript@next 这将获取由 TypeScript 团队创建的夜间构建。您也可以从源代码@github offcourse.

自己构建它

执行命令后,您将拥有 node_modules 文件夹,我们稍后会用到它。我们使用来自 node_modules\typescript\lib

的文件

现在前往 VSCode 所在的位置,以我为例

C:\Users\dvdbrink\AppData\Local\Code\app-0.3.2\resources\app\plugins\vs.language.typescript\lib

将用户名更改为您的用户名以访问正确的文件夹,AppData 可能是一个隐藏文件夹。

将文件从您的 npm 安装位置复制到上面的位置并重新启动代码。

现在 abstract 应该可以正常工作了,例如,当你没有正确地实现它并且你得到所有的波浪线时它会给出错误。它只是不为 abstract 关键字着色!

你可能有多个应用程序-0.3.2,我想你应该总是有最新的!