我在编写基本的 javascript ES2015 函数时遇到 typescript 错误。例如由于没有在任何地方声明类型,我收到以下错误:
src\app\component.ts(44,18): error TS7006: Parameter 'a' implicitly has an 'any' type.
src\app\component.ts(44,21): error TS7006: Parameter 'b' implicitly has an 'any' type.
src\app\component.ts(45,20): error TS7006: Parameter 'p' implicitly has an 'any' type.
src\app\component.ts(45,23): error TS7006: Parameter 'n' implicitly has an 'any' type.
“问题”函数是一个像这样的 ES2015 函数:
this.filters = this.items
.map(x => x.someProperty)
.reduce((p,n) => p.concat(n), [])
.sort((a, b) => {/* sort someway */})
.reduce((p, n) => {/* do something */}, [])
我喜欢这个函数的可读性,我知道它工作得很好。如果我必须在任何地方添加类型,它就违背了使用更简洁语法的目的。
我知道 Typescript 是 ES2015 的超集,但我写的所有内容都报告为错误(不是警告),除非我指定每一个类型。这有点烦人,而且出于某种原因,这些错误会使我的编译器崩溃。
话虽这么说。我确实喜欢用强类型编写新代码,也喜欢收到警告。只是一些功能中的一些关闭检查会很好。
是否可以声明一个忽略规则的函数,或者我是否必须以这种方式重写我的所有 JavaScript?
最佳答案
尝试在 tsconfig 编译器选项中设置 "noImplicitAny": false:
{
"compilerOptions": {
"noImplicitAny": false
}
}
关于Typescript 错误作为警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352687/