更新到Angular 2 RC后,我收到以下错误:
error TS7008: Member 'summary' implicitly has an 'any' type.
在这一行:
@Input() summary;
出了什么问题?
编辑:好的,好像我在任何公共变量上都出现此错误。
答案 0 :(得分:65)
也许您在TypeScript编译器配置中更改了noImplicitAny
属性的值...请参阅tsconfig.json文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false // <-----
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
您可以尝试在您的媒体资源上添加类型。类似的东西:
@Input() summary:string;
答案 1 :(得分:7)
只需在processed_content = []
temp_array = []
for line in content:
if line == '-':
processed_content.append(temp_array)
temp_array=[]
else:
temp_array.append(line)
processed_content.append(temp_array)
matrix = [[[digit for digit in line.split()] for line in array]
for array in processed_content]
中注释掉这个"noImplicitAny": false
,就可以了
答案 2 :(得分:5)
这个问题已经有了正确答案,但要澄清并充分解释:
解决方案1 - 在tsconfig.json中设置:
"noImplicitAny": false
解决方案2 如下所示定义变量的类型:
@Input() summary:string;
说明:
如果要将纯JavaScript转换为TypeScript,则不会为变量(或参数)分配任何类型 - 因为严格的输入是TypeScript的名称。
在这种情况下,如果您有类似此变量的内容(未指定类型):
@Input() summary;
然后TypeScript将隐含地假设您的变量的类型为&#39;任何&#39; (即它假定变量可以包含任何类型的值)。此外,如果在tsconfig.json中设置了以下内容:
{
"compilerOptions": {
...
"noImplicitAny": true,
}
}
...然后这会告诉TypeScript编译器如果变量或参数隐含地具有&#39; Any&#39;类型。因此,您可以使用第一个解决方案忽略所有隐含的任何&#39;错误,或使用第二种解决方案(提供类型),以及&#39;任何&#39;不会暗示。
TypeScript编译器选项的参考:
https://www.typescriptlang.org/docs/handbook/compiler-options.html