Ricerca di tipi in TypeScript

1

Sto usando un sacco di impliciti in TypeScript. Non capisco bene come decifrare un file TSD per ottenere il tipo corretto quando si costruisce una libreria come espressa o angolare. C'è un modo per imparare qual è il tipo di qualcosa in fase di runtime, in modo che possa tornare indietro e inserire il tipo più tardi? O c'è un altro modo di capire i tipi in base al codice esistente?

    
posta Shaun 11.02.2016 - 23:02
fonte

2 risposte

0

Is there a way to learn what the type of something is at runtime, so that I can go back and fill in the type later?

TypeScript utilizza la cancellazione dei tipi e non viene eseguito in fase di runtime:

Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, forgo soundness to deal with issues of scale, code reuse, and popular programming patterns.

Utilizza un'alternativa, come la seguente:

JS++® introduces the first and only type system compatible with JavaScript that is optional and "sound."

In other words, if you choose to declare the type for a variable, it is guaranteed to always be correct — during compile-time checking and runtime execution — even if you're using "untyped" JavaScript libraries.

JavaScript offre cinque modi: typeOf e instanceOf , isPrototypeOf , constructor e Object.getPrototypeOf :

typeof 1;

/foo/ instanceof RegExp

Error.isPrototypeOf(ReferenceError)

this.constructor

Object.getPrototypeOf(NaN)

Riferimenti

risposta data 18.10.2018 - 15:31
fonte
0

Come accennato in precedenza, TS ha il modello dei tipi solo in fase di compilazione. Se apri i file js prodotti avrai una buona comprensione di cosa è "lasciato" e visibile al runtime.

La tua lotta sembra originare dal problema che stai usando le librerie senza essere in grado di conoscere i tipi che i loro metodi restituiscono o si aspettano, questo è ciò che mi intrometto. Quale IDE o editore stai usando? VSCode o Atom (o anche Emacs) hanno un'intelligenza eccellente per typescipt.

I file tsd sono un po 'confusi e il tipo di importazione è ancora un po' magico per me, ma solo leggere la libfefs non elaborata potrebbe comunque fornire una comprensione sufficiente dei tipi più frequenti.

    
risposta data 18.12.2018 - 21:19
fonte

Leggi altre domande sui tag