使用部分类型的库

时间:2017-02-25 16:05:40

标签: typescript visual-studio-code pixijs

我试图使用一个库(PixiJS),它具有来自&types; @ types / pixi.js'的过时类型定义。如何使用现有类型以及尚未定义的类型?我试图做以下事情:

import * as PIXI from 'pixi.js';  // use PIXI types (PIXI.Renderer, PIXI.stage, etc)
declare var PIXI.Application: any;  // untyped PIXI.Application

在VSCode中,我收到以下错误:

[ts] Import declaration conflicts with local declaration of 'PIXI'

1 个答案:

答案 0 :(得分:1)

您需要使用module augmentation

import * as PIXI from "pixi.js";

declare module "pixi.js" {
    class Application {}
}

const app = new PIXI.Application();

我刚刚将Application添加为没有任何方法的类,因为我不太了解这个库,但是使用这种方法可以添加你需要的任何东西。

修改

这不是实现,请注意declare关键字。 您正在添加到现有的模块声明中,该类只有一个声明,如果您想要添加方法,例如您只添加签名。
例如,如果该类具有echo方法,那么它将如下所示:

declare module "pixi.js" {
    class Application {
        echo(value: string): string;
    }
}

有关详细信息,请查看提供的链接。