2014-05-07 7 views
0

J'ai un fichier d.ts TypeScript que je référence à partir d'un autre fichier, mais pour une raison quelconque, les définitions de classes exportées ne semblent pas être reconnues.Typescript références malentendu

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; 
    } 
} 

C'est à peu près aussi simple un exemple que je peux donner, mais quand vous le faites, je reçois Could not find symbol 'MyClass'

Je suis sûr que cela fonctionnait avant de mettre à jour TypeScript à la dernière version, mais en vérifiant t il brise les changements, je ne vois rien qui puisse causer le problème.

Quelqu'un a-t-il des idées ici?

Répondre

3

Supprimez le mot clé d'exportation. i.e.

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

à

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

Raison: Le mot-clé export à la racine du fichier est réservé pour des modules externes. Une vidéo sur des modules externes: http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

+0

Fantastique merci, c'était à partir d'un d.ts de définitivement dactylographié, j'enverrai une requête de tirage quand j'aurai une seconde – dougajmcdonald

+0

@dougajmcdonald Vous pouvez aussi raccourcir votre classe à: 'class BarClass {constructeur (quelque chose de privé: MyClass) {}} ' – Fenton