打字稿编译器抛出错误:“错误TS2304:找不到名称”中
问题描述:
类
我想使用外部JavaScript库(MyLib中),而分型在我XClient.ts文件,所以我创建了外部的lib转储声明文件,(MYLIB。 d.ts)当我导入到MYLIB X客户端,一切都在X客户端的构造函数,但打字稿编译器扔错误OK AT“只读_lib:MyLib中;” XClient.ts打字稿编译器抛出错误:“错误TS2304:找不到名称”中
线编译器错误:“错误TS2304:找不到名称'MyLib'
如何正确使用外部函数库,以及为什么编译器会抛出错误?
// XClient.ts
import * as $ from "jquery";
import * as MyLib from "myLib";
export class XClient {
readonly _modelId: string;
readonly _lib: MyLib;
constructor(modelId: string) {
this._modelId = modelId;
this._lib = new MyLib(this._modelId);
}
}
// myLib.d.ts
declare var inner: any;
declare module "myLib" {
export = inner;
}
答
Cannot find name 'MyLib'
它那里作为可变但不是作为一个类型。更多内容:https://basarat.gitbooks.io/typescript/content/docs/project/declarationspaces.html
修复
大概:
declare module "myLib" {
var inner: any;
type inner = any;
export = inner;
}
当我尝试上面的代码,编译器抛出错误。 ' message:'A'declare'modifier can not be used in a already ambient context。'' – oguzh4n
@ oguzh4n我的不好。已更新回答 – basarat
非常有趣的做法,我很困惑:) – oguzh4n