我开发了typescript库,它由位于不同ts文件中的几个类组成。
app.ts
//imported class from separate file
import leafAdd = require('./Base/leaf');
export class MyClass {
public leafInstance : leafAdd.Leaf;
}
var MyClassInstance = new MyClass();
代码工作正常,所以我想在一个新的单独项目中使用我的库,但我仍然不想传输整个代码。相反,我只想使用typescript编译器中的定义文件(通过添加--declarations标志生成)。声明文件如下所示:
app.d.ts
import leafAdd = require('./Base/leaf');
export declare class MyClass {
public leafInstance : leafAdd.Leaf;
}
当我尝试在新项目中引用此文件时,它无论如何都不起作用:
newapp.ts
/// <reference path="./typings/app.d.ts" />
export class MyOtherClass{
public myClass: MyClass; //Compiler error: Could not find symbol MyClass
constructor() {
//some other code
}
}
我收到编译错误说:“找不到符号MyClass”
也许我错过了一些明显的东西,或者只是试图以错误的方式引用代码。如果有人能指出我正确的方向,我将非常感激。
答案 0 :(得分:1)
好的我明白了。我应该看看app.d.ts文件的解决方案:)。简单来说,似乎包含
的声明文件export declare class ...
无法使用
引用/// <reference path="./path/to/declaration.d.ts" />
并且应该像任何其他模块/类一样导入。所以工作代码如下所示:
import myclMod = require('./typings/app') //please notice missing file extension - it confused me at the beginning :)
export class MyOtherClass{
public myClass: myclMod.MyClass;
constructor() {
//some other code
}
}