typescript需要(节点)类型

时间:2016-02-14 21:14:51

标签: typescript

我正在尝试用打字稿写的电子应用程序。我试图找出答案 需要外部模块的正确实现是什么。

我的打字稿配置如下:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "noImplicitAny": false,
    "sourceMap": true,
    "removeComments": false,
    "outDir": "../build"
  },
  "exclude": [
    "node_modules",
    "typings/browser.d.ts",
    "typings/browser"
  ]
}

我有2个类,每个类都在自己的文件中。

class person {
    private job: job;
    public setJob(name: string) {
        this.job = new job(name);
    }
}

class job {
    private name: string;
    constructor(name : string) {
        var externalTool = require('external-tool');
        //Do stuff with external tool.
    }
}

外部工具的ts文件:

declare module ExternalTool {
    interface Something {
        doSomethingWithName(name:string): string;
    }
}

declare module "external-tool" {
    export = ExternalTool;
}

要求由' https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/node/node.d.ts'

定义

目前' externalTool'变量属于' any'。如何让打字稿将其识别为正确的类型。 我可以用" import externalTool = require(' external-tool')"替换require。但是那个人阶级不再认可工作班。

那么最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

在包含import externalTool = require('external-tool');课程的文件顶部使用job,并修正导致the person class no longer recognizes the job class问题的任何内容。您的ExternalTool内容属于.d.ts个文件吗?

答案 1 :(得分:0)

我似乎对如何在多个文件中使用打字稿有所了解。

经过一些谷歌搜索,并更好地了解它我的解决方案是正确设置导出值。然后将它们导入我需要的文件中。

person.ts

import job = require('./job');
class person {
    private job: job;
    public setJob(name: string) {
        this.job = new job(name);
    }
}
export = person;

job.ts

import externalTool = require('external-tool');
class job {
    private name: string;
    constructor(name: string) {
      //  var externalTool = require('external-tool');
        //Do stuff with external tool.
    }
}
export = job;

出于一些奇怪的原因,我认为打字稿会为我自动执行此操作。