TypeScript: support unknown static type

This commit is contained in:
Asger F
2018-08-20 14:55:16 +01:00
parent 9a9bbac99e
commit 96005d2147
5 changed files with 18 additions and 0 deletions

View File

@@ -2188,6 +2188,11 @@ class TupleType extends ArrayType, @tupletype {
*/
class AnyType extends Type, @anytype {}
/**
* The predefined `unknown` type.
*/
class UnknownType extends Type, @unknowntype {}
/**
* The predefined `string` type.
*/

View File

@@ -610,6 +610,7 @@ case @type.kind of
| 20 = @thistype
| 21 = @numberliteraltype
| 22 = @stringliteraltype
| 23 = @unknowntype
;
@booleanliteraltype = @truetype | @falsetype;

View File

@@ -0,0 +1 @@
| tst.ts:40:5:40:15 | unknownType | unknown |

View File

@@ -0,0 +1,5 @@
import javascript
from Expr e
where e.getType() instanceof UnknownType
select e, e.getType()

View File

@@ -32,3 +32,9 @@ const uniqueSymbolType: unique symbol = null;
let objectType: object;
let intersection: string & {x: string};
let tuple: [number, string];
let tupleWithOptionalElement: [number, string, number?];
let emptyTuple: [];
let tupleWithRestElement: [number, ...string[]];
let tupleWithOptionalAndRestElements: [number, string?, ...number[]];
let unknownType: unknown;