Я определил их в своем файле .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>
Затем в test.js:
var myTree = Tree.tree({})
Но в Typescript появляется сообщение: «Не удается найти имя" Дерево "».
Я также попытался скомпилировать --module amd
и разместить import Tree = require("model/tree");
в верхней части файла test.js, но снова возникла ошибка: Cannot find external module 'model/tree'.
однако очевидно, что это должен быть действительный импорт, см. Здесь, где он был определен: https://github.com/marmelab/tree .js / blob / master / src / main.js
Я не хочу писать файлы .d.ts для каждого отдельного внешнего файла javascript, который я хочу использовать, серьезно ли это то, что Typescript хочет от меня?
requirejs
typescript
Blub
источник
источник
Ответы:
Нет. Самое простое и быстрое решение - просто сказать ему, что есть какая-то переменная
Tree
. Это очень просто:TypeSafety - это скользящая шкала в TypeScript. В этом случае вы только говорите компилятору, что есть что-то,
Tree
что вы будете управлять, и не заботитесь о большой безопасности типов, кроме того факта, что это есть .Больше
IMHO:
declare var Tree:any;
синтаксис строки намного проще, чем у других инструментов проверки JS, которые вы бы написали, чтобы объявить об использовании переменных, которых нет в вашем коде.Обновить
источник
Вы можете сами определить 'require' и использовать недокументированную функцию amd-dependency в TypeScript:
Директива amd-dependency указывает компилятору включить ваш модуль для «определения» аргументов в сгенерированный код: см. образец здесь .
Вы также можете проверить очень хорошую статью, в которой объясняется, как использовать TypeScript с RequireJS.
Но обратите внимание, что без написания правильных определений TypeScript для существующего кода вам не будет предоставлена никакая информация о типе, и поэтому вы не получите проверки безопасности типов, расширенное завершение кода в инструментах и т. Д. Итак, ваше «Дерево» на самом деле будет иметь тип «any» и фактически будет динамической частью JS внутри другого кода TS.
источник