Home > Back-end >  Cannot assign 'import class' because its an import - Javascript
Cannot assign 'import class' because its an import - Javascript

Time:10-06

I have been initializing some constant classes as

    export class A {
       foo: string,
       b: B
    }

    export class B { 
       bar: number
    }

And then importing them into another class and initializing them in another file. However, if I have issues using class B when I want to initialize class A.

Example:

    import { A, B } from '../models/class';
    export const myVariable: A = {
       foo: 'FOO',
       b: B = {
          bar: 5
       }
    }

the first assignment is correct. However, the B class inside A will give me the error - Cannot assign to 'B' because it is an import.

CodePudding user response:

This isn't how you assign a value to a property in an object literal:

{
  foo: 'FOO',
  b: B = {
    bar: 5
  }
}

Basically you're trying to assign an object to B itself instead of to the b property on your object, and then trying to assign the result of that assignment to the b property. Which doesn't really make sense.

You're probably getting confused over the usages of the : character. When declaring a variable in TypeScript, it's used to indicate the type. When defining an object literal in JavaScript (and therefore also TypeScript), it's used to define a value for an object's property.

This is how you define an object literal:

{
  foo: 'FOO',
  b: {
    bar: 5
  }
}
  • Related