Skip to content

Commit

Permalink
feat(core): support TypeScript 5.4 (#54414)
Browse files Browse the repository at this point in the history
Adds support for TypeScript 5.4 to the project.

PR Close #54414
  • Loading branch information
crisbeto authored and dylhunn committed Feb 27, 2024
1 parent a2a0067 commit 9749589
Show file tree
Hide file tree
Showing 14 changed files with 1,050 additions and 44 deletions.
2 changes: 2 additions & 0 deletions adev/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
"jsx": "react",
"jsxFactory": "h",
"jsxFragmentFactory": "Fragment",
// TODO(crisbeto): temporarily disabled while adding support for TS 5.4. Should be re-enabled.
"skipLibCheck": true,
"paths": {
"@angular/*": ["../packages/*"],
},
Expand Down
35 changes: 19 additions & 16 deletions goldens/public-api/common/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -744,22 +744,25 @@ export enum NumberFormatStyle {
}

// @public
export enum NumberSymbol {
CurrencyDecimal = 12,
CurrencyGroup = 13,
Decimal = 0,
Exponential = 6,
Group = 1,
Infinity = 9,
List = 2,
MinusSign = 5,
NaN = 10,
PercentSign = 3,
PerMille = 8,
PlusSign = 4,
SuperscriptingExponent = 7,
TimeSeparator = 11
}
export const NumberSymbol: {
readonly Decimal: 0;
readonly Group: 1;
readonly List: 2;
readonly PercentSign: 3;
readonly PlusSign: 4;
readonly MinusSign: 5;
readonly Exponential: 6;
readonly SuperscriptingExponent: 7;
readonly PerMille: 8;
readonly Infinity: 9;
readonly NaN: 10;
readonly TimeSeparator: 11;
readonly CurrencyDecimal: 12;
readonly CurrencyGroup: 13;
};

// @public (undocumented)
export type NumberSymbol = (typeof NumberSymbol)[keyof typeof NumberSymbol];

// @public
export class PathLocationStrategy extends LocationStrategy implements OnDestroy {
Expand Down
9 changes: 9 additions & 0 deletions integration/typings_test_ts54/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
load("//integration:index.bzl", "ng_integration_test")

ng_integration_test(
name = "test",
# Special case for `typings_test_ts54` test as we want to pin
# `typescript` at version 5.4.x for that test and not link to the
# root @npm//typescript package.
pinned_npm_packages = ["typescript"],
)
69 changes: 69 additions & 0 deletions integration/typings_test_ts54/include-all.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/



import * as animations from '@angular/animations';
import * as animationsBrowser from '@angular/animations/browser';
import * as animationsBrowserTesting from '@angular/animations/browser/testing';
import * as common from '@angular/common';
import * as commonHttp from '@angular/common/http';
import * as commonTesting from '@angular/common/testing';
import * as commonHttpTesting from '@angular/common/http/testing';
import * as compiler from '@angular/compiler';
import * as core from '@angular/core';
import * as coreTesting from '@angular/core/testing';
import * as elements from '@angular/elements';
import * as forms from '@angular/forms';
import * as localize from '@angular/localize';
import * as platformBrowser from '@angular/platform-browser';
import * as platformBrowserDynamic from '@angular/platform-browser-dynamic';
import * as platformBrowserDynamicTesting from '@angular/platform-browser-dynamic/testing';
import * as platformBrowserAnimations from '@angular/platform-browser/animations';
import * as platformBrowserTesting from '@angular/platform-browser/testing';
import * as platformServer from '@angular/platform-server';
import * as platformServerInit from '@angular/platform-server/init';
import * as platformServerTesting from '@angular/platform-server/testing';
import * as router from '@angular/router';
import * as routerTesting from '@angular/router/testing';
import * as routerUpgrade from '@angular/router/upgrade';
import * as serviceWorker from '@angular/service-worker';
import * as upgrade from '@angular/upgrade';
import * as upgradeStatic from '@angular/upgrade/static';
import * as upgradeTesting from '@angular/upgrade/static/testing';

export default {
animations,
animationsBrowser,
animationsBrowserTesting,
common,
commonTesting,
commonHttp,
commonHttpTesting,
compiler,
core,
coreTesting,
elements,
forms,
localize,
platformBrowser,
platformBrowserTesting,
platformBrowserDynamic,
platformBrowserDynamicTesting,
platformBrowserAnimations,
platformServer,
platformServerInit,
platformServerTesting,
router,
routerTesting,
routerUpgrade,
serviceWorker,
upgrade,
upgradeStatic,
upgradeTesting,
};
29 changes: 29 additions & 0 deletions integration/typings_test_ts54/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "angular-integration",
"description": "Assert that users with TypeScript 5.4 can type-check an Angular application",
"version": "0.0.0",
"license": "MIT",
"dependencies": {
"@angular/animations": "file:../../dist/packages-dist/animations",
"@angular/common": "file:../../dist/packages-dist/common",
"@angular/compiler": "file:../../dist/packages-dist/compiler",
"@angular/compiler-cli": "file:../../dist/packages-dist/compiler-cli",
"@angular/core": "file:../../dist/packages-dist/core",
"@angular/elements": "file:../../dist/packages-dist/elements",
"@angular/forms": "file:../../dist/packages-dist/forms",
"@angular/localize": "file:../../dist/packages-dist/localize",
"@angular/platform-browser": "file:../../dist/packages-dist/platform-browser",
"@angular/platform-browser-dynamic": "file:../../dist/packages-dist/platform-browser-dynamic",
"@angular/platform-server": "file:../../dist/packages-dist/platform-server",
"@angular/router": "file:../../dist/packages-dist/router",
"@angular/service-worker": "file:../../dist/packages-dist/service-worker",
"@angular/upgrade": "file:../../dist/packages-dist/upgrade",
"@types/jasmine": "file:../../node_modules/@types/jasmine",
"rxjs": "file:../../node_modules/rxjs",
"typescript": "5.4.0-beta",
"zone.js": "file:../../dist/zone.js-dist/archive/zone.js.tgz"
},
"scripts": {
"test": "tsc"
}
}
26 changes: 26 additions & 0 deletions integration/typings_test_ts54/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"experimentalDecorators": true,
"module": "commonjs",
"moduleResolution": "node",
"outDir": "./dist/out-tsc",
"rootDir": ".",
"target": "es5",
"lib": [
"es5",
"dom",
"es2015.collection",
"es2015.iterable",
"es2015.promise"
],
"types": [],
},
"files": [
"include-all.ts",
"node_modules/@types/jasmine/index.d.ts"
]
}

0 comments on commit 9749589

Please sign in to comment.