2016-07-12 39 views
5

Ho un file javascript chiamato ui.js.Come usare javascript in dattiloscritto

All'interno di ui.js è il codice di configurazione dell'interfaccia utente.

if (!("ontouchstart" in document.documentElement)) { 

    document.documentElement.className += " no-touch"; 

    var jScrollOptions = { 
     autoReinitialise: true, 
     autoReinitialiseDelay: 100 
    }; 

    $('.box-typical-body').jScrollPane(jScrollOptions); 
    $('.side-menu').jScrollPane(jScrollOptions); 
    $('.scrollable-block').jScrollPane(jScrollOptions); 
} 

}

mi piacerebbe essere in grado di chiamare questo da dattiloscritto.

Non voglio convertire il codice in dattiloscritto in quanto ci sono centinaia di righe e non è realmente necessario. Deve solo essere una volta dopo che l'interfaccia utente è pronta.

Mi sembra che dovrei essere in grado di avvolgerlo in una funzione, e quindi chiamare quella funzione dal dattiloscritto.

Ma non sono stato in grado di capire come farlo.

Nota: non è un duplicato della domanda precedente, in quanto era come convertire js, non usarlo direttamente con il minor numero possibile di modifiche.

+0

Possibile duplicato di [Chiamare JavaScript direttamente da TypeScript] (http://stackoverflow.com/questions/12710962/calling-javascript-directly-from-typescript) – choz

+0

Questa risposta ha a che fare con la conversione di js in dattiloscritto. In questo caso, voglio solo usarlo così com'è, o con meno modifiche possibili. –

risposta

9

Ma non sono stato in grado di capire come farlo.

Basta impostare allowJs al vero nella tua tsconfig.json compilerOptions e quindi assicurarsi il file .js è incluso utilizzando files/include/exclude ecc

Più

ho fatto un video su l'oggetto pure https://www.youtube.com/watch?v=gmKXXI_ck7w

+1

+10 per il video. Grazie, come sempre :) –

2

È possibile chiamare le funzioni JavaScript da file esterni senza preoccupazioni. Ma devi dichiararli in modo che TypeScript ne sappia. Se non lo fai, il tuo codice funzionerà, ma riceverai un errore durante la compilazione.

È possibile utilizzare un var anonimo tipizzate:

declare var myFunction;

o un var Interfacciato tipizzate:

interface __myFunction { } declare var myFunction: __myFunction;

Si può anche scrivere questo in un file di dichiarazione (ma la sua non richiesto). Vedi anche TypeScript documentation.

+0

questa è la risposta che ho effettivamente usato e funziona. –

+0

È possibile selezionarlo come risposta accettata :) – Mick

Problemi correlati