TS-2304错误 - 找不到姓名' Iterable'在导入" jquery"时在TypeScript中in" .ts"文件

时间:2017-07-28 11:49:36

标签: jquery node.js typescript npm

我正在使用Visual Studio Code作为编辑器处理TypeScript版本2.4。我使用以下命令在NPM上安装了jQuery:

npm install --save @types/jquery

然后我从GitHub下载了jquery module的源代码。

registrationpage.ts文件的代码如下:

import * as $ from 'jquery';
class Registration_Page {
    txtuname: string;
    Registration() {
        $('#table').hide;
        this.txtuname = ( <HTMLTextAreaElement> (document.getElementById('txtusername'))).value;
    }
}
window.onload = () => {
    $('#table').show;
    var bttnLogin = document.getElementById('submit');
    var obj = new Registration_Page();
    bttnLogin.onclick = function () {
        obj.Registration();
    }
}

index.html的代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="registrationpage.js"></script>

</head>
<body>
    <form id="form1">
    <div>
     <fieldset style="font-size: medium; color: #000000;">
        <legend style="background-color:#CCCCFF; font-size: larger;font-weight:bold">Registration Page in TypeScript</legend>
        <br />
        <b>UserName</b>
        <input id="txtusername" type="text" /><br />
        <br />

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input id="submit" type="button" value="Submit" />&nbsp;&nbsp;&nbsp;&nbsp;

    </fieldset>
    </div>
    <div id="table">
        <table>
            <tr>
                <th>UserName</th>

            </tr>
        </table>
    </div>
    </form>
</body>
</html>

tsconfig.json档案:

{
    "compilerOptions": {
        "target": "es5",
        "noImplicitAny": true,
        "lib": [ "es2015", "dom" ]

    }

}

当我在CMD上编译代码时,出现以下错误:

  

错误TS2304:找不到名称Iterable

请建议适当的解决方案。

2 个答案:

答案 0 :(得分:3)

tsconfig.json的配置是正确的。当目标设置为ES5并且包含库:es2015,es2015-iterable时,则支持Iterable。 关键是当我们通过命令tsc "filename"编译.ts文件时,编译器会忽略“tsconfig.json”。此外,在使用外部模块时,您需要包含以下js文件以支持模块加载:

https://unpkg.com/core-js/client/shim.min.js">

https://unpkg.com/systemjs@0.19.39/dist/system.src.js

最后,使用此命令编译文件

**tsc -p .**

此命令不会忽略tsconfig.json文件。

希望它有所帮助。

答案 1 :(得分:2)

考虑安装节点类型定义。

npm i --save-dev @types/node

如果您使用纱线而非 NPM

yarn add -D @types/node