如何在引用定义文件时编写TypeScript

时间:2016-05-13 21:43:51

标签: typescript

例如,如果您在JavaScript中使用jQuery验证,则可能会编写类似这样的内容

$("#loginForm").validate({
    "rules": {
        "emailAddress": "required",
        "password": "required"
    },
    "messages": {
        "emailAddress": "Required", 
        "password": "Required"
    }
});

但是在TypeScript中也许会是这样的

let validator: Validator = new Validator("formName");
validator.rules.add( ... );
validator.messages.add( ... );

if (validator.valid())
{
    // submit or whatever ...
}

我并不是说这是正确的,只是试图解释我的意思。

所以我的问题是

1,您如何理解TypeScript定义文件,并从基本角度了解如何使用它进行编码?

2,如何使用jquery.validation.d.ts以TypeScript方式在TypeScript中使用jQuery Validation?换句话说,请更正上面的TypeScript代码。

1 个答案:

答案 0 :(得分:1)

您缺少的只是指定某些变量的类型。如果你的打字扩展了jQuery / static jQuery($.),那么你只需要担心确保正确引用打字文件。这就是大多数插件类型的工作原理..它们允许你在你的打字稿文件中使用第三方元素,特别是如果它们扩展jQuery(等)对象($('.element').somePlugin()

你可以用几种方式做到这一点,当我在VS2015中工作时,我可以将这一行添加到* .ts文件的顶部:

/// <reference path="../typings/main/ambient/jquery/jquery.d.ts" />

var context: JQuery = $('body');

或者您可能有打字稿配置文件,您可以一次性导入所有打字。

...
"compileOnSave": true,
"buildOnSave": false,
"files": [
    "src/**/*.ts",
    "test/**/*.ts",
    "typings/main.d.ts"
],
...

当您将鼠标悬停在已定义类型的变量或编译TS时,IDE会通知您类型。

在下图中,您可以看到当我将鼠标悬停在打字上时,IDE会告诉我这是什么。或者,如果存在一些不正确/缺失的类型,您可以立即看到它们(红色文本)

enter image description here

另一个例子:hello: string = 'Welcome world'没问题,但hello: string = 123不会。

在你的例子中。如果您引用了插件的类型,那么编译器会警告您,如果您决定放入一些非法选项,例如:

$("#loginForm").validate({

    "rules": {
        "emailAddress": "required",
        "password": "required",
        "superCoolThing:" false     // <--- 
    },
    "messages": {
        "emailAddress": "Required", 
        "password": "Required"
    }

});