我很抱歉这个问题,因为我知道答案必须存在于某个地方,但我不认为我对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
对象的定义。我需要了解如何手动摆脱这些错误。
答案 0 :(得分:2)
您可以从DefinitelyTyped获取typeahead的定义,然后您可以将其添加到使用它的文件中:
/// <reference path="./pathFromFile/typeahead.d.ts" />
如果要创建或扩展JS库的定义,只要参考路径正确,就必须创建可以在任何地方使用的.d.ts文件。我使用this guide这对我很有帮助。