He estado inicializando algunas clases constantes como
export class A { foo: string, b: B } export class B { bar: number }Y luego importarlos a otra clase e inicializarlos en otro archivo. Sin embargo, si tengo problemas para usar la clase B cuando quiero inicializar la clase A.
Ejemplo:
import { A, B } from '../models/class'; export const myVariable: A = { foo: 'FOO', b: B = { bar: 5 } }la primera asignación es correcta. Sin embargo, la clase B dentro de A me dará el error: no se puede asignar a 'B' porque es una importación.
Esta no es la forma de asignar un valor a una propiedad en un objeto literal:
{ foo: 'FOO', b: B = { bar: 5 } } Básicamente, está tratando de asignar un objeto a B en sí mismo en lugar de a la propiedad b en su objeto, y luego está tratando de asignar el resultado de esa asignación a la propiedad b . Lo cual realmente no tiene sentido.
Probablemente te estés confundiendo con los usos del carácter : . Al declarar una variable en TypeScript, se usa para indicar el tipo. Al definir un objeto literal en JavaScript (y, por lo tanto, también en TypeScript), se usa para definir un valor para la propiedad de un objeto.
Así es como se define un objeto literal:
{ foo: 'FOO', b: { bar: 5 } }