Keresés

Új hozzászólás Aktív témák

  • fordfairlane
    veterán

    Értem hogy sima js lesz belőle és a hasznos dolgok nagyrésze el is tűnik. Azt reméltem hogy van valami compiler paraméter amin átsiklottam ami automatikusan hozzátenné a típus ellenőrzéseket.

    Lényegében akkor minden egyes class esetén típusellenőrzést ugyanúgy meg kell csinálni minttha vanilla js lenne, illetve ha felhasználom egy másikban, akkor példányosítani kell. Valahogy így mint lent. (tudom hogy rossz példa) Vagy van jobb megoldás?

    class Name {
    name:string
    constructor(str:string) {
    if (typeof str !== 'string') {
    throw new TypeError()
    }
    this.name = str
    }
    }

    class Age {
    age:number
    constructor(n:number) {
    if (typeof n !== 'number') {
    throw new TypeError()
    }
    this.age = n
    }
    }

    class Person {
    name:Name
    age:Age
    constructor(i:IPerson) {
    this.name = new Name(i.str)
    this.age = new Age(i.n)
    }
    }

    interface IPerson {
    str: string,
    n: number
    }

    console.log(process.argv[2])
    let bar:IPerson = JSON.parse(process.argv[2])
    let foo = new Person(bar)
    console.log(foo)

    Typescripthez nem értek, de az instanceof talán ebben az esetben is használható.

  • martonx
    veterán

    Értem hogy sima js lesz belőle és a hasznos dolgok nagyrésze el is tűnik. Azt reméltem hogy van valami compiler paraméter amin átsiklottam ami automatikusan hozzátenné a típus ellenőrzéseket.

    Lényegében akkor minden egyes class esetén típusellenőrzést ugyanúgy meg kell csinálni minttha vanilla js lenne, illetve ha felhasználom egy másikban, akkor példányosítani kell. Valahogy így mint lent. (tudom hogy rossz példa) Vagy van jobb megoldás?

    class Name {
    name:string
    constructor(str:string) {
    if (typeof str !== 'string') {
    throw new TypeError()
    }
    this.name = str
    }
    }

    class Age {
    age:number
    constructor(n:number) {
    if (typeof n !== 'number') {
    throw new TypeError()
    }
    this.age = n
    }
    }

    class Person {
    name:Name
    age:Age
    constructor(i:IPerson) {
    this.name = new Name(i.str)
    this.age = new Age(i.n)
    }
    }

    interface IPerson {
    str: string,
    n: number
    }

    console.log(process.argv[2])
    let bar:IPerson = JSON.parse(process.argv[2])
    let foo = new Person(bar)
    console.log(foo)

    Amit belinkeltem thread-et ott mintha lettek volna workaround-ok, utólagos megoldások ezeknek a típusellenőrzéseknek a belegenerálására. Igen, ha neked tényleg ez kell, akkor valóban nincs más hátra, mint vanillajs-ként tekinteni a ts generált kimentére (mert hiszen az is).

Új hozzászólás Aktív témák