Есть ли способ подсказки переданного типа аргумента в IDE (в моем случае Webstorm) в Javascript? - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть следующий HTML файл с некоторыми JavaScript:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
<div id="root"></div>
<div>
    <label for="new-content">
        <textarea id="new-content" style="width: 400px; height: 100px"></textarea>
    </label>
    <br/>
    <button onclick="addContent(document.getElementById('new-content'))">Submit</button>
</div>


<script>
    function addContent(/*HTMLTextAreaElement*/content) {
        alert(content.value);
    }
</script>
</body>
</html>

Мне нравится, как я могу намекнуть Webstorm (или IntelliJ или Eclipse), какой тип content в function addContent, но мне не нравится, как я не могу сказать, что это в onclick, что приводит до следующего предупреждения:

enter image description here

Вот моя первая мировая проблема: могу ли я указать тип document.getElementById('new-content') в аргументе?

1 Ответ

0 голосов
/ 28 апреля 2019

Я нашел способ методом проб и ошибок, похоже, работает следующее:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
<div id="root"></div>
<div>
    <label for="new-content">
        <textarea id="new-content" style="width: 400px; height: 100px"></textarea>
    </label>
    <br/>
    <button onclick="addContent(getNewContent())">Submit</button>
</div>

<div id="content"></div>

<script>
    function getNewContent() {
        return document.getElementById('new-content');/*HTMLTextAreaElement*/
    }

    function addContent(/*HTMLTextAreaElement*/content) {
        document.getElementById('content').innerHTML =
            document.getElementById('content').innerHTML +
            '<p>'.concat(content.value).concat('</p>');
    }
</script>
</body>
</html>
...