17.11.2013, 20:32
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от kobezzza
|
GCC понимает эти анотации и использует их чтобы генерировать как можно более оптимальный и эффективный код
|
Я его еще использую как статический анализатор, т.е. если функция ожидат принять строку, а передается число, то выдается ошибка.
Сообщение от Gozar
|
В Erlang нельзя изменять значение переменной, не ясно какое отношение это имеет к типам?
|
Ну это так к слову
|
|
17.11.2013, 21:24
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от monolithed
|
Я его еще использую как статический анализатор, т.е. если функция ожидат принять строку, а передается число, то выдается ошибка.
|
У меня это вебшторм делает
|
|
17.11.2013, 22:13
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Gozar
|
Не пора закончить этот затянувшийся разговор про ангуляр?
|
может быть
kobezzza, спасибо за ссылку.
Сообщение от monolithed
|
Я его еще использую как статический анализатор, т.е. если функция ожидат принять строку, а передается число, то выдается ошибка.
|
Сообщение от kobezzza
|
У меня это вебшторм делает
|
а можно напримере? Вот я по ссылке, кот. ты выше привел копирую кусок кода
/**
* A shape.
* @interface
*/
function Shape() {};
Shape.prototype.draw = function() {};
и делаю так
var obj = new Shape();
*!*
obj.paint();
*/!*
и хочу, чтобы в строчке отмеченной красным мне IDEшка ошибку бросала (не запуская код, разумеется). Это возможно?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
17.11.2013, 22:28
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от nerv_
|
может быть
kobezzza, спасибо за ссылку.
а можно напримере? Вот я по ссылке, кот. ты выше привел копирую кусок кода
/**
* A shape.
* @interface
*/
function Shape() {};
Shape.prototype.draw = function() {};
и делаю так
var obj = new Shape();
*!*
obj.paint();
*/!*
и хочу, чтобы в строчке отмеченной красным мне IDEшка ошибку бросала (не запуская код, разумеется). Это возможно?
|
Разумеется.
Используя JSDoc ты получаешь полноценную поддержку IDE, как скажем при использовании Java.
|
|
18.11.2013, 00:08
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от kobezzza
|
У меня это вебшторм делает
|
В большом проекте это не вариант, да и не заставишь всех перейти на какой-то редактор.
Да я и сам часто пишу код в vim'e
Сообщение от nerv_
|
а можно напримере?
|
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
/** @param {string} string */
function hello(string) {
return string
}
hello(1);
Будет получено предупреждение:
Number of warnings: 1
JSC_TYPE_MISMATCH: actual parameter 1 of hello does not match formal parameter
found : number
required: string at line 6 character 6
hello(1);
В моем случае будет ошибка, а не ворнинг и коммит не пройдет .
Протестить можно тут http://closure-compiler.appspot.com/
Список опций тут http://code.google.com/p/closure-compiler/wiki/Warnings
Мой конфиг:
#! /usr/bin/env sh
# Google closure compiler
# [url]http://code.google.com/p/closure-compiler/wiki/Warnings[/url]
# --compilation_level
# WHITESPACE_ONLY | SIMPLE_OPTIMIZATIONS | ADVANCED_OPTIMIZATIONS
# --compilation_level
# QUIET | DEFAULT | VERBOSE
timestamp=debug # `date +%s`
compiler=../tools/google/closure-compiler/build/compiler.jar
output=../cache/static/__init__
java -jar ${compiler} \
--js="${output}.js" \
--externs=../trunk/__slot__.js \
--js_output_file="${output}.${timestamp}.js" \
--create_source_map="${output}.${timestamp}.json" \
--warning_level=QUIET \
--summary_detail_level=3 \
--charset=UTF-8 \
--language_in=ECMASCRIPT5_STRICT \
--compilation_level=SIMPLE_OPTIMIZATIONS \
--formatting=SINGLE_QUOTES \
--jscomp_error=ambiguousFunctionDecl \
--jscomp_error=checkDebuggerStatement \
--jscomp_error=checkRegExp \
--jscomp_error=checkVars \
--jscomp_error=const \
--jscomp_error=constantProperty \
--jscomp_error=es5Strict \
--jscomp_error=internetExplorerChecks \
--jscomp_error=invalidCasts \
--jscomp_error=missingProperties \
--jscomp_error=suspiciousCode \
--jscomp_warning=undefinedNames \
--jscomp_error=undefinedVars \
--jscomp_warning=uselessCode \
--jscomp_warning=externsValidation \
--jscomp_warning=duplicate \
--jscomp_warning=deprecated \
--jscomp_warning=accessControls \
--jscomp_warning=visibility \
--jscomp_warning=checkTypes \
--jscomp_warning=fileoverviewTags \
--jscomp_warning=nonStandardJsDocs \
--jscomp_warning=strictModuleDepCheck \
--jscomp_warning=unknownDefines \
# --jscomp_warning=globalThis \
# --source_map_format=DEFAULT \
# --use_types_for_optimization \
# --create_name_map_files=true \
# --print_ast \
# --print_pass_graph \
# --print_tree \
Последний раз редактировалось monolithed, 18.11.2013 в 00:14.
|
|
18.11.2013, 08:29
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Последний раз редактировалось kobezzza, 18.11.2013 в 09:46.
|
|
20.11.2013, 15:29
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
kobezzza, monolithed,
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.11.2013, 21:49
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Gozar
|
Не пора закончить этот затянувшийся разговор про ангуляр?
|
Сообщение от nerv_
|
может быть
|
вы обсуждали angularjs без меня? Я требую продолжения
|
|
20.11.2013, 23:04
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
x-yuri, целая ветка форума есть под него
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.11.2013, 23:36
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Целая ветка форума это конечно круто, но зачем она мне, если вы и так уже все тут собрались ну или почти все...
p.s. пишу из убунты, если что
|
|
|
|