Typescript属性“ prepend”在“ HTMLDivElement”类型上不存在

时间:2018-06-21 12:01:26

标签: typescript

在打字稿方法中,代码

some_existing_div.prepend(some_new_div)

产生:

[ts] Property 'prepend' does not exist on type 'HTMLDivElement'.

,当然,按照https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend可以。

tsconfig具有

"lib": [ "es7", "es2017", "dom", "dom.iterable" ],

,我想我需要添加一些内容。但是呢

更一般而言,下次我遇到类似的问题时,如何在不来到这里的情况下解决它?是否有一些新功能映射到打字稿库?还是什么?

1 个答案:

答案 0 :(得分:1)

  

,我想我需要添加一些内容。但是呢?

否,您无需添加任何内容。 dom库为supposed to contain all types that are part of the official DOM specifications。但是,新类型会有延迟,因为正式的dom库是根据Microsoft Edge生成的文件生成的,而这些文件并不总是立即实现新规范,而且TypeScript不会每次都发布新版本是对lib的更新。

关于您的特定问题,domnow includes the ParentNode.prepend method(在TypeScript存储库的主分支上),但更新的库不是尚未发布作为版本的一部分。

  

更一般地说,下次我遇到类似的问题时,如何在不来这里的情况下解决该问题?

  1. 尝试将您的typescript软件包更新为最新版本。
  2. 检查the current version of the dom.generated.d.ts file(您也可以build yourself)是否包含要查找的类型。如果确实如此,则可以预期该类型将作为接下来的几个TypeScript版本之一的一部分发布。
  3. 等等。而且,如果您确实需要API,则可以创建一个临时.d.ts文件(仅适用于全新类型),也可以将您正在使用的对象转换为any。您的情况就是(some_existing_div as any).prepend(some_new_div)