TypeScript/tests/cases/fourslash/derivedTypeIndexerWithGenericConstraints.ts

29 lines
769 B
TypeScript
Raw Normal View History

2014-07-13 01:04:16 +02:00
/// <reference path='fourslash.ts'/>
////class CollectionItem {
//// x: number;
////}
////class Entity extends CollectionItem {
//// y: number;
////}
////class BaseCollection<TItem extends CollectionItem> {
//// _itemsByKey: { [key: string]: TItem; };
////}
////class DbSet<TEntity extends Entity> extends BaseCollection<TEntity> { // error
Add useDefineForClassFields flag for Set -> Define property declaration (#33509) * Disallow property/accessor overrides Unless the base property or accessor is abstract * Disallow uninitialised property overrides This causes quite a few test breaks. We'll probably want to revert many of them by switching to the upcoming `declare x: number` syntax. * Updates from design review + fix ancient bug 1. Don't error when overriding properties from interfaces. 2. Fix error when overriding methods with other things. This had no tests so I assume that the code was always dead and never worked. * Need to add a couple of errors and squash one Will update after checking out other branch for a minute * Everything works so far Need to test properties initialised in constructor * Check for constructor initialisation * change error wording * Improve error wording * Add codefix to add missing 'declare' * Always emit accessors in .d.ts files * Allow 'declare' on any uninitialised property decl * Undo code moves * Let sleeping dogs lie * Correctly set NodeFlags.Ambient And simplify redundant parts of check. * Remove more unneeded code * Update baselines * Update baselines * Update baselines * Ignore this-property assignments * Fix base-in-interface check * Do not error when base parent is interface * Fix base interface check * Add missed baselines * Fix check * Fix new errors in services * Fix new errors in services * Fix errors in testRunner * Add flag and turn off errors when on * Structure of new emit is correct, fake content It is 'hi'. * Basically right emit * Fix one last unitialised property declaration * Haha no I missed another one * Fix whitespace back to CRLF * Minor fix and code cleanup * New test case * Fix bug in isInitializedProperty * Updates from design meeting. 1. Change flag name to useDefineForClassFields (and flip polarity). 2. Forbid ES3 + useDefineForClassFields (since there is no defineProperty). 3. Forbid overriding an abstract property-with-initializer with an accessor. * Update baselines * Object.defineProperty for methods too Using code from Ron from his upcoming refactor of the factory functions. * Update slow baselines * Improve error message * Update src/compiler/transformers/utilities.ts Co-Authored-By: Andrew Branch <andrewbranch@users.noreply.github.com> * Add test of computed properties * Remove done TODO
2019-09-26 22:25:05 +02:00
//// _itemsByKey: { [key: string]: TEntity; } = {};
2014-07-13 01:04:16 +02:00
////}
////var a: BaseCollection<CollectionItem>;
2014-10-07 20:30:27 +02:00
////var /**/r = a._itemsByKey['x']; // should just say CollectionItem not TItem extends CollectionItem
2014-07-13 01:04:16 +02:00
////var result = r.x;
////a = new DbSet<Entity>();
////var r2 = a._itemsByKey['x'];
////var result2 = r2.x;
2016-09-09 18:02:55 +02:00
verify.quickInfoAt("", "var r: CollectionItem");
verify.noErrors();