Подтвердить что ты не робот

Ошибка TS7008: "резюме" пользователя неявно имеет тип "any"

После обновления до Angular 2 RC я получил следующую ошибку:

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

в этой строке:

@Input() summary;

что не так?

Изменить: Хорошо, похоже, что я получаю эту ошибку на ЛЮБОЙ из моих общедоступных переменных.

4b9b3361

Ответ 1

Возможно, вы изменили значение атрибута noImplicitAny в конфигурации компилятора TypeScript... См. файл 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;

Ответ 2

просто закомментируйте этот "noImplicitAny": false в tsconfig и он будет работать

Ответ 3

У этого вопроса уже есть правильные ответы, однако уточнить и полностью объяснить:

Решение 1. Установите это в свой tsconfig.json:

    "noImplicitAny": false

Решение 2 Определите тип для вашей переменной следующим образом:

    @Input() summary:string;

Пояснение:

Если вы конвертируете обычный JavaScript в TypeScript, у вас не будет никаких типов, назначенных вашим переменным (или параметрам) - поскольку строгая типизация дает имя TypeScript.

В этом случае, когда у вас есть что-то вроде этой переменной (которая не имеет назначенного типа):

@Input() summary;

Тогда TypeScript будет подразумевать, что ваша переменная имеет тип "Any" (т.е. предполагает, что переменная может содержать значение любого типа). Кроме того, если в вашем tsconfig.json есть следующий набор:

{
  "compilerOptions": {
    ...
    "noImplicitAny": true,
  }
}

... тогда это сообщает компилятору TypeScript, чтобы он выдавал ошибки, если переменная или параметр неявно имеют тип "Любой". Таким образом, вы можете использовать 1-е решение, чтобы игнорировать все "неявные какие-либо" ошибки или использовать 2-е решение (указать тип), а "any" не будет подразумеваться.

Ссылка для параметров TypeScript для компилятора:

https://www.typescriptlang.org/docs/handbook/compiler-options.html