Deliver web apps with confidence 🚀
Find a file
ayazhafiz 8a565c8814 feat(language-service): completions support for indexed types (#34047)
Previously, indexing a container type would not return completions for
the indexed type because for every TypeScript type, the recorded index
type was always marked as `undefined`, regardless of the index
signature.

This PR now returns the index type of TypeScript containers with numeric
or string index signatures. This allows use to generate completions for
arrays and defined index types:

```typescript
interface Container<T> {
  [key: string]: T;
}
const ctr: Container<T>;
ctr['stringKey']. // gives `T.` completions

const arr: T[];
arr[0]. // gives `T.` completions
```

Note that this does _not_ provide completions for properties indexed by
string literals, e.g.

```typescript
interface Container<T> {
  foo: T;
}
const ctr: Container<T>;
ctr['foo']. // does not give `T.` completions
```

Closes angular/vscode-ng-language-service#110
Closes angular/vscode-ng-language-service#277

PR Close #34047
2019-11-26 16:27:52 -05:00
.circleci ci: use more descriptive names for published build artifacts (#33957) 2019-11-22 14:05:52 -05:00
.devcontainer docs: add info on setting up VSCode remote development using docker containers (#33790) 2019-11-13 13:33:22 -08:00
.github ci: add JoostK to @angular/fw-compiler (#33994) 2019-11-22 18:40:38 -05:00
.vscode style: increase timeout to give blaze sufficient time to build (#33678) 2019-11-08 10:55:01 -08:00
aio docs: add Animations import in Router doc (#33740) 2019-11-25 22:37:55 -05:00
docs build: update setup-rbe.sh script and documentation to remove http-remote-cache config (#33907) 2019-11-21 10:45:58 -08:00
integration build: update payload limits for cli-hello-world-ivy-i18n es2015 bundle (#34043) 2019-11-25 20:50:41 -05:00
modules fix(bazel): ng_module should not emit shim files under bazel and Ivy (#33765) 2019-11-22 16:52:09 -05:00
packages feat(language-service): completions support for indexed types (#34047) 2019-11-26 16:27:52 -05:00
scripts ci: remove change type from uploaded payload size data (#33987) 2019-11-25 16:36:07 -05:00
third_party build: update to @bazel/bazel 1.0.0 (#33476) 2019-10-29 16:22:41 -07:00
tools fix(core): remove deprecated and defunct wtf* apis (#33949) 2019-11-25 18:39:18 -05:00
.bazelignore build: add integration/platform-server/node_modules to .bazelignore (#33765) 2019-11-22 16:52:09 -05:00
.bazelrc build: update setup-rbe.sh script and documentation to remove http-remote-cache config (#33907) 2019-11-21 10:45:58 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes test: fix ts api guardian and public guard tests on windows (#30105) 2019-04-26 16:32:22 -07:00
.gitignore docs: add info on setting up VSCode remote development using docker containers (#33790) 2019-11-13 13:33:22 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc to correct node version (#33636) 2019-11-06 21:23:07 +00:00
browser-providers.conf.js ci: re-enable chrome mobile tests on android (#32447) 2019-09-03 11:58:30 -07:00
BUILD.bazel build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
CHANGELOG.md release: cut the v9.0.0-rc.3 release 2019-11-20 14:18:59 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: add missing parenthesis (#31041) 2019-10-07 11:02:33 -07:00
gulpfile.js build: move cldr dependency to npm (#33634) 2019-11-07 17:49:20 +00:00
karma-js.conf.js build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
package.json fix(bazel): update to tsickle 0.37.1 to fix peerDep warnings (#33788) 2019-11-22 13:13:01 -05:00
protractor-perf.conf.js fixup! test(ivy): make the test run with benchpress (#30449) 2019-05-16 20:04:04 -07:00
README.md docs: fix typo of Typescript to TypeScript (#32153) 2019-08-15 12:44:41 -07:00
renovate.json ci: update packageFiles to be renovated (#29071) 2019-03-05 09:43:23 -08:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js refactor: rename unpatched event flag in Zone from BLACK_LISTED_EVENTS to UNPATCHED_EVENTS (#29617) 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining (#32881) 2019-10-09 13:19:38 -07:00
tslint.json style: enforce disallowance of String, Number and Boolean constructors (#33210) 2019-10-17 14:12:00 -04:00
WORKSPACE build: bump check version requirements for bazel and rules_nodejs (#33966) 2019-11-21 19:49:02 -05:00
yarn.lock fix(bazel): update to tsickle 0.37.1 to fix peerDep warnings (#33788) 2019-11-22 13:13:01 -05:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.