Utilizzo del commento type: nell'editor del codice di Cloud

All’interno dell’editor del codice di Instant Developer Cloud è possibile fare in modo che una certa variabile sia riconosciuta di uno specifico tipo. In questo modo poi l’editor del codice ti può suggerire tutti i suoi metodi e proprietà.
Come si fa questa cosa? Lo vediamo fra poco :grinning_face:

C’è da dire che In molti punti di un progetto il framework è in grado di stabilire da solo di che tipo sia una variabile, per esempio al ritorno da un metodo che ha uno specifico documento come risultato:

let doc = App.NwindLib.Product.getProdotto(id);

Se nella definizione del metodo getProdotto è stato indicato il tipo ritornato allora l’editor è in grado di conoscerne tutte le caratteristiche e quindi digitando doc. avremo una combo con le specifiche proprietà e metodi.

In quali casi l’edito non è in grado di stabilire il tipo di una variabile?
Quando per esempio questa è passata ad una videata con il metodo push di un IonMainPage.

Nell’evento onLoad della videata richiamata ho il parametro options che contiene anche la mia variabile passata ma non si sa nulla del tipo contenuto.
Per forzare il tipo devo semplicemente dopo il punto e virgola di chiusura dell’istruzione utilizzare la direttiva type: in un commento come in questa riga di codice:

let doc = options.prodotto; //type:NwindLib.Products

Non si deve aggiungere anche App. prima del nome della libreria.

Nel caso che sia una classe di quelle del framework basta l’indicazione della classe:

let xx = options.file; //type:File

Digitando del testo dopo i due punti si attiva anche la combo che visualizza gli oggetti:

Chi conosceva già questo trucco?

5 Mi Piace

Strano dictu:: io lo usavo spesso Infatti mi ero accorto che, quando il framework conosceva il tipo con precisione, non c’erano problemi; invece, se derivava da classi o quant’altro, inserendo il type era tutto più…fluido :blush:

1 Mi Piace

Io si, non ricordo se lo scoprii per caso, guardando uno dei progetti di esempio o me lo disse un tuo collega durante una sessione di assistenza, in ogni caso fu una preziosa scoperta.

1 Mi Piace

Nel caso fosse un array di oggetti ?
Vedo che aggiungere le parentesi quadre al tipo non funziona.

@marco.rosa.it mettimi un esempio di codice che indago.

Riprendendo anche solo questo.

Io potrei avere:
let docs = []; //type:NwindLib.Products
Dove docs è un array di Products.

In questo caso vorrei avere la .push dell’array e se accedo al singolo elemento, esempio docs[i]. e vorrei accedere alle sue proprietà.

@marco.rosa.it purtroppo per ora l’ide non è così evoluto ma puoi sempre quando tratti il singolo elemento indicarne il tipo:

  for (let i = 0; i < docs.length; i++) {
    let d = docs[i]; //type: NwindLib.Products
  }

A questo punto d avrà tutte le proprietà e i metodi di Products.

4 Mi Piace