mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
feat(core): support TypeScript 4.7 (#45749)
Adds support for TypeScript 4.7. Changes include: * Bumping the TS version as well as some Bazel dependencies to include https://github.com/bazelbuild/rules_nodejs/pull/3420. * Adding a backwards-compatibility layer for calls to `updateTypeParameterDeclaration`. * Making `LView` generic in order to make it easier to type the context based on the usage. Currently the context can be 4 different types which coupled with stricter type checking would required a lot of extra casting all over `core`. * Fixing a bunch of miscellaneous type errors. * Removing assertions of `ReferenceEntry.isDefinition` in a few of the language service tests. The field isn't returned by TS anymore and we weren't using it for anything. * Resolving in error in the language service that was caused by TS attempting to parse HTML files when we try to open them. Previous TS was silently setting them as `ScriptKind.Unknown` and ignoring the errors, but now it throws. I've worked around it by setting them as `ScriptKind.JSX`. PR Close #45749
This commit is contained in:
committed by
Dylan Hunn
parent
fcc548a95f
commit
29039fcdbc
@@ -43,9 +43,9 @@ export const diff = <T>(differ: DefaultIterableDiffer<T>, a: T[], b: T[]):
|
||||
if (!alreadySet[record.previousIndex]) {
|
||||
a[record.currentIndex] = a[record.previousIndex];
|
||||
} else {
|
||||
a[record.currentIndex] = {} as T;
|
||||
a[record.currentIndex] = {} as unknown as T;
|
||||
}
|
||||
Object.keys(b[record.currentIndex]).forEach(prop => {
|
||||
Object.keys(b[record.currentIndex] as unknown as {}).forEach(prop => {
|
||||
// TypeScript's type inference didn't follow the check from above.
|
||||
if (record.currentIndex === null) {
|
||||
return;
|
||||
|
||||
@@ -14,7 +14,7 @@ export const initializeExtendedWindowOperations = () => {
|
||||
extendWindowOperations(window, {inspectedApplication: chromeWindowExtensions});
|
||||
};
|
||||
|
||||
const extendWindowOperations = <T>(target, classImpl: T) => {
|
||||
const extendWindowOperations = <T extends {}>(target, classImpl: T) => {
|
||||
for (const key of Object.keys(classImpl)) {
|
||||
if (target[key] != null) {
|
||||
console.warn(`A window function or object named ${key} would be overwritten`);
|
||||
|
||||
Reference in New Issue
Block a user