我一直关注var grid = document.getElementsByClassName('box');
function changeColor(item) {
item.addEventListener('click', function() {
this.style.background = 'black';
});
};
grid.forEach(function(el) {
changeColor(el);
});
文档(https://ui-router.github.io/react/)我在webpack编译代码库时遇到很多问题
ui-router-react
当我收到这些错误时,进入app.tsx:
import {UIRouter, UIView, UISref, UISrefActive, pushStateLocationPlugin} from 'ui-router-react';
我认为在我的ERROR in [at-loader] node_modules/ui-router-core/lib/common/common.d.ts:388:31
TS7006: Parameter 'a' implicitly has an 'any' type.
ERROR in [at-loader] node_modules/ui-router-core/lib/common/common.d.ts:388:34
TS7006: Parameter 'b' implicitly has an 'any' type.
ERROR in [at-loader] node_modules/ui-router-core/lib/resolve/resolveContext.d.ts:7:22
TS7005: Variable 'NATIVE_INJECTOR_TOKEN' implicitly has an 'any' type.
ERROR in [at-loader] node_modules/ui-router-core/lib/transition/transitionHook.d.ts:13:37
TS7006: Parameter 'error' implicitly has an 'any' type.
ERROR in [at-loader] src/components/loginComponent.tsx:23:33
TS2314: Generic type 'KeyboardEvent<T>' requires 1 type argument(s).
ERROR in [at-loader] src/components/loginComponent.tsx:32:31
TS2314: Generic type 'KeyboardEvent<T>' requires 1 type argument(s).
网络包中并不是要考虑webpack.config.js
,但显然是。{/ p>
这是分支reactRouting下的repo链接
https://github.com/JMStudiosJoe/ReactPractice/tree/reactRouting
答案 0 :(得分:1)
看起来这些错误是ui-router-react
的输入生成方式的结果。
如果您查看,请说出node_modules\ui-router-core\lib\common\common.d.ts
文件。\,行388
,您会看到这个
export declare type sortfn = (a, b) => number;
如您所见,a
和b
没有类型信息关联。他们。如果您手动编辑此行,使其看起来像
export declare type sortfn = (a: any, b: any) => number;
前两个编译错误将消失。如果转到您提供的错误列表中的每个文件/行并执行相同的操作,您的项目将编译。
现在,它当然是一种临时措施,真正的类型应该是any
之外的其他类型。这个(即打字)应由包裹的作者确定。但是,以这种方式编辑类型定义文件将暂时取消阻止。
答案 1 :(得分:1)
有一个问题,但当解决方案在tsconfig文件中时,我正在查看webpack配置。您可以设置"noImplicitAny": false
选项以消除任何错误
进入app.tsx就是我得到这些错误:[at-loader]中的错误node_modules / ui-router-core / lib / common / common.d.ts:388:31 TS7006:参数&#39; a& #39;隐含地有一个“任何”的类型。
[at-loader]中的错误node_modules / ui-router -core / lib / common / common.d.ts:388:34 TS7006:参数&#39; b&#39;隐含地有一个“任何”的类型。 [at-loader]中的错误node_modules / ui-router-core / lib / resolve / resolveContext.d.ts:7:22 TS7005:Variable&#39; NATIVE_INJECTOR_TOKEN&#39;隐含地有一个“任何”的类型。
[at-loader]中的错误node_modules / ui-router-core / lib / transition / transitionHook.d.ts:13:37 TS7006:参数&#39;错误&#39;隐含地有一个“任何”的类型。
要摆脱其他错误,需要操纵我的React函数参数类型
usernameValidator = (event: React.KeyboardEvent => {
更改为
usernameValidator = (event: React.ChangeEvent<HTMLInputElement>) => {
修复了最后两期。
答案 2 :(得分:1)
我建议不要将"noImplicitAny"
设置为true
,因为在您自己的代码库中,它非常有用,可确保您充分利用Typescript(类型检查)的强大功能之一。
您的问题是您的打字稿转换器正在处理您的node_modules库。而且你并不是真的想要这样,因为你信任你的第三方图书馆。
最简单的方法是在exclude
(https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)中添加tsconfig.json
字段
如果您的tsconfig.json
位于根文件夹,并且您的node_modules文件夹相同,则可以添加:{/ p>
"exclude": [
"node_modules"
]
而且......那就是它!