Make Symbol the apparent type of symbol
This commit is contained in:
parent
fbeadbcbd3
commit
9f39a5388a
|
@ -2524,6 +2524,9 @@ module ts {
|
|||
else if (type.flags & TypeFlags.Boolean) {
|
||||
type = globalBooleanType;
|
||||
}
|
||||
else if (type.flags & TypeFlags.ESSymbol) {
|
||||
type = globalESSymbolType;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ s || 1;
|
|||
>s : symbol
|
||||
|
||||
({}) || s;
|
||||
>({}) || s : symbol | {}
|
||||
>({}) || s : {}
|
||||
>({}) : {}
|
||||
>{} : {}
|
||||
>s : symbol
|
||||
|
|
11
tests/baselines/reference/symbolType15.errors.txt
Normal file
11
tests/baselines/reference/symbolType15.errors.txt
Normal 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'.
|
12
tests/baselines/reference/symbolType15.js
Normal file
12
tests/baselines/reference/symbolType15.js
Normal 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
tests/baselines/reference/symbolType16.js
Normal file
11
tests/baselines/reference/symbolType16.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
//// [symbolType16.ts]
|
||||
interface Symbol {
|
||||
newSymbolProp: number;
|
||||
}
|
||||
|
||||
var sym: symbol;
|
||||
sym.newSymbolProp;
|
||||
|
||||
//// [symbolType16.js]
|
||||
var sym;
|
||||
sym.newSymbolProp;
|
16
tests/baselines/reference/symbolType16.types
Normal file
16
tests/baselines/reference/symbolType16.types
Normal 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
|
||||
|
6
tests/cases/conformance/es6/Symbols/symbolType15.ts
Normal file
6
tests/cases/conformance/es6/Symbols/symbolType15.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
//@target: ES6
|
||||
var sym: symbol;
|
||||
var symObj: Symbol;
|
||||
|
||||
symObj = sym;
|
||||
sym = symObj;
|
7
tests/cases/conformance/es6/Symbols/symbolType16.ts
Normal file
7
tests/cases/conformance/es6/Symbols/symbolType16.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
//@target: ES6
|
||||
interface Symbol {
|
||||
newSymbolProp: number;
|
||||
}
|
||||
|
||||
var sym: symbol;
|
||||
sym.newSymbolProp;
|
Loading…
Reference in a new issue