2017-06-11 2 views
0

Je cette fonction exportée:Ajouter des informations de type à fonction exportée

export function foo(){ 

    setTimeout(function(){ 
    foo.x = y;    // add a property to foo fn 
    },3000); 

} 

comment puis-je déclarer avec tapuscrit que foo peut avoir une propriété appelée « x »?

ma seule estimation serait de faire quelque chose comme ceci:

export const foo : FooType = function(){ 

     setTimeout(function(){ 
     foo.x = y;    // add a property to foo fn 
     },3000); 

    } 

où FooType est une interface comme:

interface FooType { 
    foo?: YType 
} 

mais je ne pense pas que cette solution fonctionne.

Répondre

1

Votre interface devrait fonctionner. En fait, vous pouvez ajouter la signature de la fonction elle-même à l'interface:

interface FooType { 
    (): void; 
    x?: string 
} 

export const foo: FooType = function() { 
    setTimeout(function() { 
     foo.x = "some value"; 
    }, 3000); 
}