我有一个包含聚合物@next作为纱线模块的项目,并将其添加为纯JS库。我想使用来自高分子2.4GitHubrepo的类型文件夹中的类型:https://github.com/Polymer/polymer/tree/2.4-pre/types
因此,我开始创建一个@types文件夹,并在其中添加一个@高分子文件夹,其中包含一个package.json和index.d.ts以及回购程序中的所有文件。
无论我如何尝试,tsc都不会发现和接受聚合物元素的类型。它在@type文件夹中作为一个文件在聚合物中..。
my @类型的结构包含:
+ @types
++++ @polymer
------ package.json
------ index.d.ts
------ polymer-element.d.ts我的代码(app.ts)包含:从“@高分子/聚合物/聚合物-元素”导入{ Element }。
我还试着将“Polymerd-Element.d.ts”放置在“polymer”子文件夹中,但这也会产生相同的错误:
src/myapp.ts(3,25): error TS7016: Could not find a declaration file for
module '@polymer/polymer/polymer-element'.
'/Users/johngorter/Desktop/polymernext/node_modules/@polymer/polymer/polymer-element.js' implicitly has an 'any' type.
Try `npm install @types/@polymer/polymer/polymer-element` if it exists or add a new declaration (.d.ts) file containing `declare module '@polymer/polymer/polymer-element';`我在这里错过了什么?为什么tsc没有给我正确的洞察力?
谢谢约翰。
发布于 2018-02-01 12:39:07
好的,我基本上创建了一个@type文件夹,并为每个导入的命名模块创建了一个文件夹:
import '@polymer/polymer/polymer'
import { Element } '@polymer/polymer/polymer-element'我直接在@types文件夹下创建了一个子文件夹,每个文件夹都包含一个index.d.ts文件,因此结构如下:
@types
----@polymer
--------index.d.ts
----@polymer-element
--------index.d.ts在这些索引类型文件中,我引用了从repo (高分子2.4)下载的类型定义,并创建了如下所示的命名模块定义:
declare module "@polymer/polymer/polymer-element" {
/**
* Base class that provides the core API for Polymer's meta-programming
* features including template stamping, data-binding, attribute deserialization,
* and property change observation.
*/
class Element extends
Polymer.ElementMixin(
HTMLElement) {
}
}现在起作用了。
发布于 2018-02-01 11:20:51
当@Polymer被定义时,它是一个名称空间,并且没有export成员,所以尝试使用这个解决方法:
进口polymerElement =要求(“@聚合物/聚合物/聚合物-元素”);
如果它不起作用,试着只使用@polymer /lib路径中的一种类型,看看它是否至少解决了这个问题。
看看这个:import foo = require('foo')
编辑-- 解决方案1
应该解决implicitly has an 'any' type错误,更改tsconfig文件:
{ "compilerOptions":
{ "target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false // <-----
}
https://stackoverflow.com/questions/48560996
复制相似问题