我在哪里放置打字稿定义,以及当对象已有定义时如何编写它们

时间:2016-09-22 15:44:50

标签: typescript

我很抱歉这个问题,因为我知道答案必须存在于某个地方,但我不认为我对Typescript有足够深刻的理解,甚至不知道我应该怎么做正在寻找。

我的问题是我在名为typeahead的窗口对象上添加了一个名为bound的jquery插件以及一个全局变量,用于与我的c#wrapper app进行通信。

这些项目在编译时会导致错误,我想摆脱错误,所以我该怎么做?我想也许我应该为这些项目创建定义,但我找不到任何关于如何做到的文档,因为jquery已经有了定义,因为我安装了{{1来自jquery的定义,看起来可能typings对象也有定义。

以下是我遇到的错误:

window

那么,我该怎么做才能使错误停止?如果我应该写定义,定义在哪里,以及如何为已经定义的对象编写定义?

我尝试在我的项目的根目录Property 'typeahead' does not exist on type 'JQuery'. Property 'bound' does not exist on type 'Window'. 中创建一个文件,但是一旦我创建了该文件,其中没有代码,我就会收到此错误:

index.d.ts

我尝试添加接口语句,模块声明语句和命名空间声明语句,没有任何东西可以使错误消失。文件名错了吗?该文件应该位于某个位置吗?

我已阅读此处的文件:https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html 但我无法看到定义的位置,或者如何为已经存在的对象编写定义。

提前感谢任何人都可以提供帮助。

修改

绝对是Typed,Typeing包含我使用的typeahead库的定义,也不包含我创建的全局WARNING in ./src/index.d.ts Module build failed: Error: Debug Failure. False expression: Output generation failed 对象的定义。我需要了解如何手动摆脱这些错误。

1 个答案:

答案 0 :(得分:2)

您可以从DefinitelyTyped获取typeahead的定义,然后您可以将其添加到使用它的文件中:

/// <reference path="./pathFromFile/typeahead.d.ts" />

如果要创建或扩展JS库的定义,只要参考路径正确,就必须创建可以在任何地方使用的.d.ts文件。我使用this guide这对我很有帮助。