在编写基本的javascript ES2015函数时,我在打字稿中遇到错误。例如由于未在任何地方声明类型,我收到以下错误:
src \ app \ component.ts(44,18):错误TS7006:参数'a'隐式具有'any'类型。
src \ app \ component.ts(43,41):错误 TS7006:参数'b'隐式具有'任意'类型。
src \ app \ component.ts(45,20):错误 TS7006:参数'p'隐式具有'any'类型。
src \ app \ component.ts(45,23):错误 TS7006:参数'n'隐式具有'any'类型。
'问题'函数是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 */}, [])
我喜欢这个函数的可读性,我知道它的工作正常。如果我必须在任何地方添加类型,它就会失去使用terser语法的目的。
我知道Typescript是ES2015的超集,但我写的所有内容都报告为错误(不是警告),除非我指定每一种类型。这有点烦人,出于某种原因,错误导致我的编译器崩溃。
话虽如此。我喜欢用强类型编写新代码,我喜欢收到警告。在某些功能中只需要关闭支票就可以了。
是否有声明忽略规则的函数或是否必须以这种方式重写我的所有JavaScript?
答案 0 :(得分:7)
尝试在tsconfig编译器选项中设置" noImplicitAny":false:
{
"compilerOptions": {
"noImplicitAny": false
}
}