错误TS7008:成员'摘要'含有'任意'类型

时间:2016-05-04 16:05:17

标签: angular

更新到Angular 2 RC后,我收到以下错误:

error TS7008: Member 'summary' implicitly has an 'any' type.

在这一行:

@Input() summary;

出了什么问题?

编辑:好的,好像我在任何公共变量上都出现此错误。

3 个答案:

答案 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