Javascript 如何导入.d.ts文件以及如何使用它声明的类?
我想将area.js(模块testt)导入MyModule.ts。 area.js有一个area.d.ts文件Javascript 如何导入.d.ts文件以及如何使用它声明的类?,javascript,import,protocol-buffers,Javascript,Import,Protocol Buffers,我想将area.js(模块testt)导入MyModule.ts。 area.js有一个area.d.ts文件 区域d.ts: import * as $protobuf from "../node_modules/protobufjs/minimal"; /** Properties of a ProtoArea. */ export interface IProtoArea { } /** Represents a ProtoArea. */ export class ProtoArea
区域d.ts
:
import * as $protobuf from "../node_modules/protobufjs/minimal";
/** Properties of a ProtoArea. */
export interface IProtoArea
{
}
/** Represents a ProtoArea. */
export class ProtoArea
{
...
...
}
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()");
}
}
}
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
:
import * as $protobuf from "../node_modules/protobufjs/minimal";
/** Properties of a ProtoArea. */
export interface IProtoArea
{
}
/** Represents a ProtoArea. */
export class ProtoArea
{
...
...
}
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()");
}
}
}
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();
下面是LayaSample.ts
:
import * as $protobuf from "../node_modules/protobufjs/minimal";
/** Properties of a ProtoArea. */
export interface IProtoArea
{
}
/** Represents a ProtoArea. */
export class ProtoArea
{
...
...
}
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()");
}
}
}
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.T。。
我试着这样做:
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");
等等。
它们都不起作用。
谢谢你的帮助