我正在尝试用打字稿写的电子应用程序。我试图找出答案 需要外部模块的正确实现是什么。
我的打字稿配置如下:
{
"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。但是那个人阶级不再认可工作班。
那么最好的方法是什么?
答案 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;
出于一些奇怪的原因,我认为打字稿会为我自动执行此操作。