如何导入.d.ts文件以及如何使用它声明的类?

时间:2017-11-16 12:41:46

标签: javascript import protocol-buffers

我想将area.js(模块testt)导入MyModule.ts。 area.js有一个area.d.ts文件。

area.d.ts

import * as $protobuf from "../node_modules/protobufjs/minimal";

/** Properties of a ProtoArea. */
export interface IProtoArea
{
}

/** Represents a ProtoArea. */
export class ProtoArea
{
    ...
    ...
}

MyModule.ts

import ProtoArea = require("../libs/area");
module testt{
    export function MyModuleFunc():void
    {
        console.log("in MyModuleFunc function");

        // let msg = ProtoArea.create();
        // let buffer = ProtoArea.encode(msg).finish();
        // let decode = ProtoArea.decode(buffer);
        // console.log(`buffer = ${Array.prototype.toString.call(buffer)}`);

    }

    export class MyClass
    {
        public callClassFunc():void
        {
            console.log("MyClass->callClassFunc()");
        }
    }
}

以下是LayaSample.ts

import te = testt.MyModuleFunc;
class GameMain{
    constructor()
    {
        Laya.init(600,400, 0x000000);

        console.log("start");
        te();

        let cls = new testt.MyClass();
        cls.callClassFunc();
    }
}
new GameMain();

如果我在MyModule.ts中添加此代码,则编译失败:

找不到名字'testt'。 找不到命名空间'testt'。

import ProtoArea = require("../libs/bundle");

如果评论它,编译没有错误。 那有什么问题呢? 我该如何导入它?以及如何使用area.d.ts中声明的类ProtoArea? 我是JS和TS的新手。我试了几天。我发现我可以导入这样的模块:

import te = testt.MyModuleFunc;

但不知道.d.ts .. 我试过这些:

import pa = require("../libs/area.d.ts");
import {pa} from "../libs/area";
import ProtoArea as pa from "../libs/area";
import Pa = require("ProtoArea");
require("ProtoArea");
require("../libs/area");

等。 它们都不起作用。 谢谢你的帮助。

0 个答案:

没有答案