javascript - Angular `@Input()`-tyyppi on `undefined` suoritusaikana


Minulla on Angular-komponentti, ja lisään type-tyypin Input-ominaisuuteen käyttämällä namespace-nimialuetta seuraavasti: @Input() size: AMap.Size

AMap on namespace ja luokka Size sen sisällä. IDE ja TypeScript-kääntäjä toimivat hyvin. Mutta se ei toimi selaimessa. Ja heittää virheen Uncaught ReferenceError: AMap is not defined. Löysin käännetyn koodin.

Miksi tyyppi käännetään koodiksi?

AMap-tyypit ovat seuraavat

declare namespace AMap {

    export class Size {}

}

kiitos

Vastaus #1

Minulle toimi käyttämällä tyypinaliasia tiedoston alussa ja sitten käyttämällä sitä.

type ASize = AMap.Size

...

@Input() size: ASize

Tiedän, että tämä on vain kiertotie, mutta ehkä siitä on hyötyä jollekin.

Vastaus #2

Minulla oli samanlainen ongelma. Luulen, että se liittyi Typescriptiin, webpackin pakkausongelmaan. Voitko yrittää käyttää:

export module AMap {
   export class Size {...}
}

sen sijaan, että vieisit nimialuetta. Ja tuo se ja käytä komponentissa näin:

import { AMap } from './../..';