2012-10-26 3 views
21

Ho la seguente funzione in un file:Come posso dichiarare una funzione da un altro file in tipografico?

function alertWin(title, message) { 
    ....... 
    ....... 
} 

In un altro file dattiloscritto che ho:

function mvcOnFailure(message) { 
    "use strict"; 
    alertWin("Internal Application Error", message); 
} 

sto ottenendo un errore che dice "alertwin" non esiste nell'ambito corrente.

è il modo per risolvere questo per me di definire questa funzione in un altro file e quindi fare riferimento che? In tal caso, quale sarebbe la definizione?

risposta

24

Si può fare questo (titolo assumendo e il messaggio sono entrambi dovrebbe essere stringhe):

interface alertWinInterface{ 
    (title:string, message: string):any; 
} 

declare var alertWin: alertWinInterface; 

Si potrebbe mettere questo nello stesso file, o metterlo in un file delle definizioni ambiente separato (.d. ts), che si importa:

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

Oppure, si può semplicemente importare l'altro file che ha la definizione di funzione reale, ma non sarà possibile ottenere il supporto tipizzazione statica.

+0

Penso che entrambe le file sono file tipografico, quindi non c'è bisogno di creare una definizione aggiuntiva, non vi resta che puntare al file typescript esistente. – Fenton

+1

@Sohnee: Sì, mi ha suggerito che alla fine. Non era chiaro dalla domanda se fosse o meno ciò che volevano fare. –

3

Hai solo bisogno di raccontare gli strumenti e compilatore dove trovare la vostra funzione, con l'aggiunta di un riferimento alla parte superiore del file:

/// <reference path="fileWithFunction.ts" /> 

Inoltre, tutti i parametri sono attualmente tipizzati come any, è puoi scriverli esplicitamente se lo desideri.

function alertWin(title: string, message: string) : void { 
    //....... 
    //....... 
} 
13

Questo approccio sembra funzionare per me:

declare function alertWin(title: string, message: string) : void; 

E come con la soluzione di Matt lo metti in un file di definizione e quindi fare riferimento.