分解类的Typescript声明

时间:2016-06-11 13:12:12

标签: typescript

我有一个我正在尝试为节点模块创建一个类型。我发现当我使用分解的类时,代码没有编译。

这是我的声明文件 demo.d.ts

declare namespace DemoNs {
  interface Foo_static {
    new(): Foo_instance;
  }

  interface Foo_instance {}

  export var Foo: Foo_static;
}


declare module 'demo-ns' {
  export = DemoNs
}

这是我的测试文件 demo-tests.ts

/// <reference path="demo.d.ts" />

import { Foo } from 'demo-ns';

var a: Foo;

当试图编译测试文件的最后一行时说:

error TS2304: Cannot find name 'Foo'.

1 个答案:

答案 0 :(得分:0)

发现问题。

编译器抛出错误,因为即使很难导出Foo,也没有地方说它是一种类型。因此,他没有找到Foo。

我通过在我的声明文件中添加到我的命名空间Foo来修复,行:

export type Foo = Foo_instance;