- Не удается найти компилятор Typescript: команда » tsc » недопустима
- 6 ответов
- Почему ругается компилятор typescript?
- Typescript команда компилятора (tsc), не работающая с tsconfig
- ОТВЕТЫ
- Ответ 1
- для init:
- для компиляции
- для компиляции «другого» проекта
- Ответ 2
- tsc не распознается как внутренняя или внешняя команда
- 3 ответа
- ‘tsc command not found’ in compiling typescript
- 21 Answers 21
- Non-admin solution
Не удается найти компилятор Typescript: команда » tsc » недопустима
просто установил расширение Typescript для VS2012 и следовал установить TypeScript для Visual Studio 2012 а то учебник для вызова компилятора:
но когда я пытаюсь скомпилировать .TS файл где я должен ввести: tsc greeter.ts ? Пробовал это в командной строке VS и в консоли windows, всегда получать сообщение о том, что tsc не распознается как команда ( Command «tsc» is not valid. ).
6 ответов
убедитесь, что у вас есть,
C:\Program Files (x86)\Microsoft SDKs\TypeScript .8.0.0
C:\Program Files\Microsoft SDKs\TypeScript .8.0.0
на вашем пути. Если нет, попробуйте перезапустить CMD.EXE и посмотрите, появляется ли новая копия. Если это не удается, попробуйте добавить один из вышеперечисленных вручную на вашем пути.
Если вы используете tsc в качестве модуля узла, убедитесь, что вы установили его с
тогда он должен быть доступен глобально в командной строке узла
для людей, о Windows С Код Visual Studio, которые не хотят устанавливать полную Visual Studio только для tsc.exe , Я могу предложить просто загрузить его отсюда:https://www.microsoft.com/en-us/download/details.aspx?id=48593.
это позор, что эта ссылка отсутствует на странице загрузки TypeScript.
хотя установщик назвал TypeScript for Visual Studio 2015 , он работает с кодом Visual Studio как что ж.
после того, как вы загрузили и установили TypeScript, вы должны вручную добавить его каталог установки ( C:\Program Files (x86)\Microsoft SDKs\TypeScript.0\ в моем случае) к %PATH% переменные среды.
открыть редактор переменных среды:
Win + S ; e , n , v , я , r , o ; нажмите кнопку редактировать переменные среды для ваш счет.
в открывшемся окне найти Path переменная пользователя (обратите внимание, что она не называется %PATH% здесь, но все-таки это он). Возможно, там уже проложен какой-то путь. Вы просто набираете ; , добавьте расположение установки TypeScript и добавьте еще один ; в конце.
Источник
Почему ругается компилятор typescript?
Всем доброго!
Вот решил познакомится с Angular 2 (+ заодно и typescript с es6).
Пока только вникаю. вот мой фрагмент кода :
запускаю проект командами :
Все билдится,все ок.
в процессе изменил код на :
все также работает, и переменная sommm в html как <
app/app.component.ts(15,10): error TS2339: Property ‘sommm’ does not exist on type ‘AppComponent’.
npm ERR! Darwin 15.5.0
npm ERR! argv «/Users/scorpio/.nvm/versions/node/v5.1.0/bin/node» «/Users/scorpio/.nvm/versions/node/v5.1.0/bin/npm» «start»
npm ERR! node v5.1.0
npm ERR! npm v3.3.12
npm ERR! code ELIFECYCLE
npm ERR! angular2-quickstart@1.0.0 start: `tsc && concurrently «tsc -w» «lite-server» `
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the angular2-quickstart@1.0.0 start script ‘tsc && concurrently «tsc -w» «lite-server» ‘.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular2-quickstart package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! tsc && concurrently «tsc -w» «lite-server»
npm ERR! You can get their info via:
npm ERR! npm owner ls angular2-quickstart
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/scorpio/Documents/git/io2/heroes/npm-debug.log
Пожалуйста объясните мне что происходит и почему. Спасибо за понимание 🙂
P.S.
Может это потому что constructor запускается при создании через new ?
- Вопрос задан более трёх лет назад
- 1226 просмотров
Немного поправлю Евгения, достаточно объявить нужное поле в классе, тип можно не ставить:
Или ещё можно добавить модификатор в аргумент конструктора:
Но типы всё-таки лучше указывать.
UPD 0. В TypeScript обычно, если переменная имеет тип, отличный от any, то динамически добавлять поля в неё нельзя. Когда создаётся экземпляр класса (оператор new), вызывается специальный метод с именем ‘constructor’. Ты пытаешься в конструкторе записать в поле sommm. Компилятор TypeScript работает до рантайма и типы определяет исходя из объявления класса. В данном случае, тип AppComponent имеет 2 поля (title, hero). Так что с его точки зрения, у типа AppComponent нет поля sommm, потому-то он и ругается.
Иногда, видимо из-за особенностей лайв-серверов, бывает, что хоть компилятор и ругается на несоответствие типов, но код запускается и работает, ведь с точки зрения JS, всё выглядит верно.
UPD 1. Хоть я и привёл пример, где не указывал типы переменных, но так делать не стоит (почти) никогда. Чтобы оградить себя от написания такого кода, можно добавить опцию компилятора «noImplicitAny». Без неё следующий код скомпилируется без ошибок:
Со включённой опцией компилятор выдаст ошибки там, где переменные, аргументы функций и методов или поля классов объявлены без типов.
Нужно всегда стараться указывать тип у переменных. Если один тип не подходит, можно попробовать сделать функцию/метод/класс дженериками. Если тип неизвестен — то можно поставить any. Но обычно такое бывает редко, ведь обычно ты знаешь, что за тип ожидается (у меня в проектах практически нет переменных с типом any).
UPD 2. Я привёл пример, где в конструкторе указывается модификатор. Это специальный синтаксис в Typescript, который позволяет уменьшить количество повторяющегося кода.
Однако, есть важный момент: внедрение зависимостей в компоненты/директивы/сервисы/и т.п. во втором ангуляре идёт через конструктор. Причём, в typescript-версии, фреймворк по-умолчанию извлекает информацию о типе аргумента конструктора и пытается внедрить по этому типу нужную зависимость. Поэтому в конструкторах должны быть только внедряемые зависимости.
UPD 3. Если пишешь на ангуляре, то стоит изучить styleguide и стараться следовать ему. Плюс, хорошо ещё прикрутить к проекту tslint.
Источник
Typescript команда компилятора (tsc), не работающая с tsconfig
Я установил typescript глобально ( npm install typescript -g )
Затем создала папку, запустила npm —init , затем npm intall typescript —save-dev — установила typescript @2.1.4
В папке я создаю ‘helloworld.ts`
запустила команду tsc с опцией файла — tsc helloworld.ts и увидела, что она скомпилирована в helloworld.js .
Далее, я хочу использовать tsconfig.json, поэтому я запускаю tsc —init — это не работает, говорит Unknown option ‘init’
Я говорю, хорошо, позвольте мне попробовать добавить tsconfig.json вручную и добавить его в корень папки, как показано ниже:
и я запускаю tsc в командной строке, но он не будет работать и выводит мне синтаксис, пример и параметры того, как использовать tsc Syntax: tsc [options] [file] .
ОТВЕТЫ
Ответ 1
удалить-update-remove-get-rid-off: устаревшие расширения Visual Studio.
или удалите его из пути.
или переименуйте папку, чтобы подтвердить проблему. затем nuke it:)
проверьте, что произойдет, если вы выполните:
также. Мне нужно установить typescript локальный проект, если модуль, от которого вы зависите, зависит от него
вам нужно использовать функцию компилятора в «своем» коде
вам нужно использовать другую версию, чем установленная глобально
для init:
для компиляции
a ‘project’ (на основе tsconfig.json):
где . означает здесь
для компиляции «другого» проекта
Ответ 2
То, что я сделал, чтобы настроить версию Typescript команды tsc в моей системе Windows, было:
Удаление пути Typescript 1.0 здесь. (Запустите button-> Тип: переменные среды, нажмите на опцию (английская версия Windows здесь) и выберите системную переменную среды PATH).
npm link машинопись
И затем я использовал команду refreshenv Chocolatey, чтобы обновить системную переменную среды PATH, которую я настроил.
После запуска команды: tsc -v я получил: Версия 2.2.1
Текущая версия Typescript — 3. 5+, но я глобально установил Typescript 2.2.1, потому что я следую курсу Typescript, используя эту версию.
Источник
tsc не распознается как внутренняя или внешняя команда
Я использую версию узла 6.9.2 с версией npm 5.4.2 на Windows7. Я установил машинопись с помощью команды npm install typescript -g .
Однако, когда я запускаю демонстрационный файл с помощью команды tsc , я получаю сообщение об ошибке:
Кто-нибудь может помочь? Другие модули узла установлены правильно и работают нормально. Не уверен, почему машинопись не работает.
3 ответа
Установите версию узла 6.11, и все будет работать без изменений.
Поскольку вы установили его глобально и у вас не было ошибок, я могу предположить, что установка прошла успешно.
Чтобы быть уверенным, вы можете запустить эту команду npm config get prefix . Он выведет путь к папке, содержащей все пакеты, установленные глобально с помощью npm. Если вы идете в папку, указанную путем, есть подпапка nodes_modules . Он должен содержать папку с машинописью, если установка прошла успешно. Затем скопируйте path of the bin папки машинописного текста в вашей переменной среды. Вы должны обозначить путь tsc .
Затем вы можете использовать tsc в командной строке.
Вероятно, проблема в том, что tsc отсутствует в системном пути.
Сначала проверьте, правильно ли установлен tsc . Откройте cmd.exe и введите следующее.
Если есть журнал версий, то tsc успешно установлен.
Следующее, что нужно добавить в PATH. Написать в cmd.exe
Это должно решить проблему.
Однако, если первая команда не зарегистрировала версию,
Проверьте место установки, используя
Если машинопись появляется в выходных данных, скопируйте местоположение в PATH как
Источник
‘tsc command not found’ in compiling typescript
I want to install typescript, so I used the following command:
and test tsc —version , but it just show ‘tsc command not found’. I have tried many ways as suggested in stackoverflow, github and other sites. but it doesn’t work. How could I know typescript is installed and where it is.
my OS is Unix, OS X El Capitan 10.11.6, node version is 4.4.3, npm version is 3.10.5
21 Answers 21
A few tips in order
- restart the terminal
- restart the machine
- reinstall nodejs + then run npm install typescript -g
If it still doesn’t work run npm config get prefix to see where npm install -g is putting files (append bin to the output) and make sure that they are in the path (the node js setup does this. Maybe you forgot to tick that option).
I had to do this:
You are all messing with the global installations and -path files. Just a little error might damage every project you have ever written, and you will spend the rest of the night trying to get a console.log(‘hi’) to work again.
If you have run npm i typescript —save-dev in your project — just try to run:
And see if it works before messing with global stuff (unless of course you really know what you are doing)
After finding all solutions for this small issue for macOS only.
Finally, I got my TSC works on my MacBook pro.
This might be the best solution I found out.
For all macOS users, instead of installing TypeScript using NPM, you can install TypeScript using homebrew.
Please see attached screencap for reference.
If your TSC command is not found in MacOS after proper installation of TypeScript (using the following command: $ sudo npm install -g typescript , then ensure Node /bin path is added to the PATH variable in .bash_profile .
Open .bash_profile using terminal: $ open
Edit/Verify bash profile to include the following line (using your favorite text editor):
Load the latest bash profile using terminal: source
Lastly, try the command: $ tsc —version .
Easy fix for Mac I found. Just run these commands:
Nothing worked except this for me.
I had this same problem on Ubuntu 19.10 LTS.
To solve this I ran the following command:
After that, I was able to use tsc .
This answer is specific for iTermV2 on MAC
First of all, I needed to instal as sudo (admin) during NPM install
sudo npm install -g typescript
NPM installs the libraries under /usr/local/Cellar/node/ /lib/node_modules/typescript folder and symlinks at /usr/local/Cellar/node/ /bin/tsc
/.zshrc ( .bashrc, if you use bash)and added /usr/local/Cellar/node/ /bin to the $PATH.
- reload the shell profile via source
/.zshrc (.bashrc in your case)
Globally installing TypeScript package worked for me.
The only solution that work for me was put npx tsc -v or for the compiling npx tsc salida.ts
«salida.ts» is the name of the file
Check your npm version
If it’s not properly installed, then install it first
run this command npm install typescript -g
It’ll create a corresponding .js file. eg .js
now try node .js
None of above worked for me.
I tried this as well,
was able to compile by hook and crook as follows. Not recommended but just a workaround.
Just install locally using npm , as npm install typescript and verify in node_module folder, if its downloaded. and then run,
Non-admin solution
I do not have admin privileges since this machine was issued by my job.
- get path of where node modules are being installed and copy to clipboard
- npm config get prefix | clip
- don’t have clip? just copy output from npm config get prefix
- add copied path to environment variables
- my preferred method (Windows)
- (Ctrl + R), paste rundll32 sysdm.cpl,EditEnvironmentVariables
- under User Variables, double-click on Path >New > Paste copied path
None of above answer solve my problem. The fact is that my project did not have type script installed. But locally I had run npm install -g typescript . So I did not notice that typescript node dependency was not in my package json.
When I pushed it to server side, and run npm install , then npx tsc I get a tsc not found. In facts remote server did not have typescript installed. That was hidden because of my local global typescript install.
On Windows 10 i solved it by adding %APPDATA%\npm to the path
I have tried a lot to deploy the Node.js typescript project on Heroku and I have tried different solutions but none of them working for me. So, I have implemented a solution that is to create a build locally which is a dist folder, and just only push dist folder with package.json files, you don’t need to push your src folder to Heroku. and in your script add «start»: «node dist/index.js»
Here are my project structure:
.gitignore file:
just need to add these scripts:
For windows and yarn user, try yarn tsc —init
For mac users, you don’t need to restart your laptop or doing any other commands
Use brew install typescript
Add the path by using command as below in command prompt:
path=%path%;C:\Users\\npm
As in my case, the above path was not registered for command.
%userprofile% in run windows, will give you path to C:\users\
This works perfectly on Mac. Tested on macOS High Sierra
This generates the tsconfig.json file.
I solved this on my machine by just running sudo npm install in the directory that I was getting the error.
Источник