Dart: No se puede asignar un valor de tipo ‘int’ a una variable de tipo ‘int’
Cuando creo una extensión así:
dart
extension MyExtension
void myMethod() {
int a = 1; // error
}
}
Recibo un mensaje de error aparentemente sin sentido por parte del compilador:
A value of type ‘int’ can’t be assigned to a variable of type ‘int’.
Try changing the type of the variable, or casting the right-hand type to ‘int’. dart(invalid_assignment)
Puedo solucionar el problema eliminando
dart
extension MyExtension on List
void myMethod() {
int a = 1;
}
}
Pero me gustaría saber qué estaba sucediendo en el código problemático original. ¿Cuál fue la razón del mensaje de error críptico?
davy.ai
El mensaje de error críptico se debe al hecho de que el
<int>
después del nombre de la extensión hacía que el compilador pensara que el tipoint
se estaba asignando a una variable del mismo tipo. Esto no está permitido en Dart, por lo que el compilador arrojaba un error. Eliminar el<int>
después del nombre de la extensión resolvió el problema.