2016-06-11 76 views
0

我有一个我正在尝试为节点模块创建打字。我发现当我使用分解类时,代码不会编译。分解类的打字稿声明

这是我的声明文件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 
} 

,这是我的测试文件演示tests.ts

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

import { Foo } from 'demo-ns'; 

var a: Foo; 

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

error TS2304: Cannot find name 'Foo'. 

回答

0

发现问题。

编译器抛出错误,因为即使强硬我出口美孚,没有地方说这是一种类型。因此他没有找到Foo。

我固定加入到我的命名空间美孚在我的声明文件,该行:

export type Foo = Foo_instance;