0e905be42b
* Switch index signature storage to 'indexInfos: IndexInfo[]' property * Accept new baselines * Remove another usage of IndexKind enum * Update getIndexedAccessType and resolveMappedTypeMembers * Accept new baselines * Update grammar checking for index signatures * Accept new baselines * Consider all index signatures in mapped types and union types * Accept new baselines * Update getIndexType * Accept new baselines * Intersect multiple applicable index signatures * Use getApplicableIndexInfo instead of hardwired string/number handling * Update index signature relationship checking * Report type for which index signature is missing * Report type for which index signature is missing * Accept new baselines * Make 'number' index signatures consistently apply to numeric strings * Accept new baselines * Update fourslash test * Revise index constraint checking * Accept new baselines * Update error messages * Accept new baselines * Update type inference from index signatures * Update isKnownProperty * Update contextual typing based on index signatures * Accept new baselines * Support union types in index signature declarations * Accept new baselines * Check duplicate index signatures / remove redundant template literals from unions with string * Accept new baselines * Include key type in diagnostic / check symbol-named properties * Accept new baselines * Minor fix * Add tests * Accept new baselines * Add optimized findApplicableIndexInfoForName * Accept new baselines * Another place we don't need to obtain literal type for property name * Accept new baselines * Don't create literal types that are going to be discarded * Individual maps for string, number, bigint, and enum literal types * Remove ineffective optimizations * Accept new baselines * Permit intersections as key types in index signatures * Index expression in element access is template literal context * Add tests * Accept new baselines * Symbol index signatures from object literals with computed symbol properties * Accept new baselines * Add more tests * Accept new baselines * Implement Go To Definition for all applicable index signatures * Add fourslash test * Accept new API baselines
101 lines
2.2 KiB
TypeScript
101 lines
2.2 KiB
TypeScript
//// [declFileTypeAnnotationVisibilityErrorTypeLiteral.ts]
|
|
module m {
|
|
class private1 {
|
|
}
|
|
module m2 {
|
|
export class public1 {
|
|
}
|
|
}
|
|
|
|
export var x: {
|
|
x: private1;
|
|
y: m2.public1;
|
|
(): m2.public1[];
|
|
method(): private1;
|
|
[n: number]: private1;
|
|
[s: string]: m2.public1;
|
|
};
|
|
export var x2 = {
|
|
x: new private1(),
|
|
y: new m2.public1(),
|
|
method() {
|
|
return new private1();
|
|
}
|
|
};
|
|
export var x3 = x;
|
|
|
|
// Function type
|
|
export var y: (a: private1) => m2.public1;
|
|
export var y2 = y;
|
|
|
|
// constructor type
|
|
export var z: new (a: private1) => m2.public1;
|
|
export var z2 = z;
|
|
}
|
|
|
|
//// [declFileTypeAnnotationVisibilityErrorTypeLiteral.js]
|
|
var m;
|
|
(function (m) {
|
|
var private1 = /** @class */ (function () {
|
|
function private1() {
|
|
}
|
|
return private1;
|
|
}());
|
|
var m2;
|
|
(function (m2) {
|
|
var public1 = /** @class */ (function () {
|
|
function public1() {
|
|
}
|
|
return public1;
|
|
}());
|
|
m2.public1 = public1;
|
|
})(m2 || (m2 = {}));
|
|
m.x2 = {
|
|
x: new private1(),
|
|
y: new m2.public1(),
|
|
method: function () {
|
|
return new private1();
|
|
}
|
|
};
|
|
m.x3 = m.x;
|
|
m.y2 = m.y;
|
|
m.z2 = m.z;
|
|
})(m || (m = {}));
|
|
|
|
|
|
//// [declFileTypeAnnotationVisibilityErrorTypeLiteral.d.ts]
|
|
declare module m {
|
|
class private1 {
|
|
}
|
|
module m2 {
|
|
class public1 {
|
|
}
|
|
}
|
|
export var x: {
|
|
x: private1;
|
|
y: m2.public1;
|
|
(): m2.public1[];
|
|
method(): private1;
|
|
[n: number]: private1;
|
|
[s: string]: m2.public1;
|
|
};
|
|
export var x2: {
|
|
x: private1;
|
|
y: m2.public1;
|
|
method(): private1;
|
|
};
|
|
export var x3: {
|
|
(): m2.public1[];
|
|
[n: number]: private1;
|
|
[s: string]: m2.public1;
|
|
x: private1;
|
|
y: m2.public1;
|
|
method(): private1;
|
|
};
|
|
export var y: (a: private1) => m2.public1;
|
|
export var y2: (a: private1) => m2.public1;
|
|
export var z: new (a: private1) => m2.public1;
|
|
export var z2: new (a: private1) => m2.public1;
|
|
export {};
|
|
}
|