Los he definido en mi archivo .html:
<script type="text/javascript" src="bower_components/tree.js/tree.min.js"></script>
<script type="text/javascript" src="bower_components/q/q.js"></script>
<script type="text/javascript" src="test.js"></script>
Luego, en test.js:
var myTree = Tree.tree({})
Pero los errores de TypeScript dicen: "No se puede encontrar el nombre 'Árbol'"
También intenté compilar --module amd
y colocar import Tree = require("model/tree");
en la parte superior del archivo test.js, pero vuelve a aparecer el error: Cannot find external module 'model/tree'.
sin embargo, claramente debería ser una importación válida, vea aquí donde se definió: https://github.com/marmelab/tree .js / blob / master / src / main.js
Yo no quiero escribir archivos .d.ts para cada archivo JavaScript externo único que quiero usar, es que en serio lo de imprenta quiere que haga?
requirejs
typescript
Lloriquear
fuente
fuente
Respuestas:
No. La solución más simple / rápida es simplemente decirle que hay alguna variable
Tree
ahí fuera. Esto es tan simple como:TypeSafety es una escala móvil en TypeScript. En este caso, solo le está diciendo al compilador que hay algo llamado
Tree
que administrará y no le importa mucho la seguridad de tipos más allá del hecho de que está allí .Más
En mi humilde opinión: la línea
declare var Tree:any;
es una sintaxis mucho más simple que la de otras herramientas de veficiación de JS que le pedirían que escriba para declarar el uso de variables que no están presentes en su código.Actualizar
fuente
Puede definir 'require' usted mismo y usar la función de dependencia amd no documentada de TypeScript:
La directiva 'amd-dependency' le dirá al compilador que incluya su módulo para "definir" argumentos en el código generado: vea un ejemplo aquí .
También puede consultar un artículo muy bueno que explica cómo usar TypeScript con RequireJS.
Pero tenga en cuenta que sin escribir definiciones de TypeScript adecuadas para su código existente, no se le proporcionará ninguna información de tipo y, por lo tanto, no obtendrá comprobaciones de seguridad de tipos, finalización avanzada de código en herramientas, etc. Entonces, su 'Árbol' en realidad será del tipo 'cualquiera', y en realidad será una pieza JS dinámica dentro de otro código TS.
fuente