Make Symbol the apparent type of symbol

This commit is contained in:
Jason Freeman
2015-02-06 21:32:33 -08:00
parent fbeadbcbd3
commit 9f39a5388a
8 changed files with 67 additions and 1 deletions
+3
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;
}
+1 -1
View File
@@ -30,7 +30,7 @@ s || 1;
>s : symbol
({}) || s;
>({}) || s : symbol | {}
>({}) || s : {}
>({}) : {}
>{} : {}
>s : symbol
@@ -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'.
+12
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;
+11
View File
@@ -0,0 +1,11 @@
//// [symbolType16.ts]
interface Symbol {
newSymbolProp: number;
}
var sym: symbol;
sym.newSymbolProp;
//// [symbolType16.js]
var sym;
sym.newSymbolProp;
@@ -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
@@ -0,0 +1,6 @@
//@target: ES6
var sym: symbol;
var symObj: Symbol;
symObj = sym;
sym = symObj;
@@ -0,0 +1,7 @@
//@target: ES6
interface Symbol {
newSymbolProp: number;
}
var sym: symbol;
sym.newSymbolProp;