Test:spread removes readonly from index signatures

This commit is contained in:
Nathan Shively-Sanders 2017-11-06 07:53:43 -08:00
parent db9ed00a0f
commit 7788d293c4
5 changed files with 41 additions and 0 deletions

View File

@ -16,4 +16,8 @@ tests/cases/conformance/types/spread/objectSpreadIndexSignature.ts(6,1): error T
declare const b: boolean;
indexed3 = { ...b ? indexed3 : undefined };
declare var roindex: { readonly [x:string]: number };
var writable = { ...roindex };
writable.a = 0; // should be ok.

View File

@ -11,6 +11,10 @@ ii[1001];
declare const b: boolean;
indexed3 = { ...b ? indexed3 : undefined };
declare var roindex: { readonly [x:string]: number };
var writable = { ...roindex };
writable.a = 0; // should be ok.
//// [objectSpreadIndexSignature.js]
@ -30,3 +34,5 @@ var ii = __assign({}, indexed1, indexed2);
// both have indexer, so i[1001]: number | boolean
ii[1001];
indexed3 = __assign({}, b ? indexed3 : undefined);
var writable = __assign({}, roindex);
writable.a = 0; // should be ok.

View File

@ -40,3 +40,14 @@ indexed3 = { ...b ? indexed3 : undefined };
>indexed3 : Symbol(indexed3, Decl(objectSpreadIndexSignature.ts, 2, 11))
>undefined : Symbol(undefined)
declare var roindex: { readonly [x:string]: number };
>roindex : Symbol(roindex, Decl(objectSpreadIndexSignature.ts, 13, 11))
>x : Symbol(x, Decl(objectSpreadIndexSignature.ts, 13, 33))
var writable = { ...roindex };
>writable : Symbol(writable, Decl(objectSpreadIndexSignature.ts, 14, 3))
>roindex : Symbol(roindex, Decl(objectSpreadIndexSignature.ts, 13, 11))
writable.a = 0; // should be ok.
>writable : Symbol(writable, Decl(objectSpreadIndexSignature.ts, 14, 3))

View File

@ -50,3 +50,19 @@ indexed3 = { ...b ? indexed3 : undefined };
>indexed3 : { [n: string]: number; }
>undefined : undefined
declare var roindex: { readonly [x:string]: number };
>roindex : { readonly [x: string]: number; }
>x : string
var writable = { ...roindex };
>writable : { [x: string]: number; }
>{ ...roindex } : { [x: string]: number; }
>roindex : { readonly [x: string]: number; }
writable.a = 0; // should be ok.
>writable.a = 0 : 0
>writable.a : number
>writable : { [x: string]: number; }
>a : number
>0 : 0

View File

@ -11,3 +11,7 @@ ii[1001];
declare const b: boolean;
indexed3 = { ...b ? indexed3 : undefined };
declare var roindex: { readonly [x:string]: number };
var writable = { ...roindex };
writable.a = 0; // should be ok.