Make Symbol the apparent type of symbol

This commit is contained in:
Jason Freeman 2015-02-05 12:21:25 -08:00
parent fbeadbcbd3
commit 9f39a5388a
8 changed files with 67 additions and 1 deletions

View file

@ -2524,6 +2524,9 @@ module ts {
else if (type.flags & TypeFlags.Boolean) {
type = globalBooleanType;
}
else if (type.flags & TypeFlags.ESSymbol) {
type = globalESSymbolType;
}
return type;
}

View file

@ -30,7 +30,7 @@ s || 1;
>s : symbol
({}) || s;
>({}) || s : symbol | {}
>({}) || s : {}
>({}) : {}
>{} : {}
>s : symbol

View file

@ -0,0 +1,11 @@
tests/cases/conformance/es6/Symbols/symbolType15.ts(5,1): error TS2322: Type 'Symbol' is not assignable to type 'symbol'.
==== tests/cases/conformance/es6/Symbols/symbolType15.ts (1 errors) ====
var sym: symbol;
var symObj: Symbol;
symObj = sym;
sym = symObj;
~~~
!!! error TS2322: Type 'Symbol' is not assignable to type 'symbol'.

View file

@ -0,0 +1,12 @@
//// [symbolType15.ts]
var sym: symbol;
var symObj: Symbol;
symObj = sym;
sym = symObj;
//// [symbolType15.js]
var sym;
var symObj;
symObj = sym;
sym = symObj;

View file

@ -0,0 +1,11 @@
//// [symbolType16.ts]
interface Symbol {
newSymbolProp: number;
}
var sym: symbol;
sym.newSymbolProp;
//// [symbolType16.js]
var sym;
sym.newSymbolProp;

View file

@ -0,0 +1,16 @@
=== tests/cases/conformance/es6/Symbols/symbolType16.ts ===
interface Symbol {
>Symbol : Symbol
newSymbolProp: number;
>newSymbolProp : number
}
var sym: symbol;
>sym : symbol
sym.newSymbolProp;
>sym.newSymbolProp : number
>sym : symbol
>newSymbolProp : number

View file

@ -0,0 +1,6 @@
//@target: ES6
var sym: symbol;
var symObj: Symbol;
symObj = sym;
sym = symObj;

View file

@ -0,0 +1,7 @@
//@target: ES6
interface Symbol {
newSymbolProp: number;
}
var sym: symbol;
sym.newSymbolProp;