2014-05-07 13 views
0

我有一個TypeScript d.ts文件,我從另一個文件中引用,但由於某種原因導出的類定義似乎不被識別。Typescript引用誤解

foo.d.ts

export declare class MyClass { 
    constructor(); 
    public MyFunc(id: number): void; 
} 

bar.ts

/// <reference path="typings/MyClass.d.ts" /> 
class BarClass { 
    private something: MyClass; 
    constructor(thing: MyClass) { 
     this.something = thing; 
    } 
} 

這是我們所簡單的一個例子,我可以給,但是這樣做的時候,我得到Could not find symbol 'MyClass'

我確定在將TypeScript更新到最新版本之前,它曾經工作過,但在檢查t他打破了變化,我看不到任何會導致問題的東西。

有沒有人有任何想法嗎?

回答

3

刪除export關鍵字。即

export declare class MyClass { 
    constructor(); 
    public MyFunc(id: number): void; 
} 

declare class MyClass { 
    constructor(); 
    public MyFunc(id: number): void; 
} 

原因:在文件的根目錄的關鍵字export保留用於外部模塊。外部模塊視頻:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

+0

神奇謝謝你,這是從d.ts從絕對類型的,當我得到一個秒我會送一拉請求 – dougajmcdonald

+0

@dougajmcdonald您也可以速記你的類:'類BarClass {構造函數(private something:MyClass){}}' – Fenton