Skip to content

Commit 5653fad

Browse files
alan-agius4matsko
authored andcommitted
feat: add TypeScript 3 support (angular#25275)
PR Close angular#25275
1 parent c230173 commit 5653fad

30 files changed

Lines changed: 219 additions & 86 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* @license
3+
* Copyright Google Inc. All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import * as compiler from '@angular/compiler';
10+
import * as compilerTesting from '@angular/compiler/testing';
11+
import * as core from '@angular/core';
12+
import * as coreTesting from '@angular/core/testing';
13+
import * as elements from '@angular/elements';
14+
import * as forms from '@angular/forms';
15+
import * as http from '@angular/http';
16+
import * as httpTesting from '@angular/http/testing';
17+
import * as platformBrowser from '@angular/platform-browser';
18+
import * as platformBrowserTesting from '@angular/platform-browser/testing';
19+
import * as platformBrowserDynamic from '@angular/platform-browser-dynamic';
20+
import * as platformServer from '@angular/platform-server';
21+
import * as platformServerTesting from '@angular/platform-server/testing';
22+
import * as platformWebworker from '@angular/platform-webworker';
23+
import * as platformWebworkerDynamic from '@angular/platform-webworker-dynamic';
24+
import * as router from '@angular/router';
25+
import * as routerTesting from '@angular/router/testing';
26+
import * as serviceWorker from '@angular/service-worker';
27+
import * as upgrade from '@angular/upgrade';
28+
29+
export default {
30+
compiler,
31+
compilerTesting,
32+
core,
33+
coreTesting,
34+
elements,
35+
forms,
36+
http,
37+
httpTesting,
38+
platformBrowser,
39+
platformBrowserTesting,
40+
platformBrowserDynamic,
41+
platformServer,
42+
platformServerTesting,
43+
platformWebworker,
44+
platformWebworkerDynamic,
45+
router,
46+
routerTesting,
47+
serviceWorker,
48+
upgrade,
49+
};
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "angular-integration",
3+
"description": "Assert that users with TypeScript 3.0 can type-check an Angular application",
4+
"version": "0.0.0",
5+
"license": "MIT",
6+
"dependencies": {
7+
"@angular/animations": "file:../../dist/packages-dist/animations",
8+
"@angular/common": "file:../../dist/packages-dist/common",
9+
"@angular/compiler": "file:../../dist/packages-dist/compiler",
10+
"@angular/compiler-cli": "file:../../dist/packages-dist/compiler-cli",
11+
"@angular/core": "file:../../dist/packages-dist/core",
12+
"@angular/elements": "file:../../dist/packages-dist/elements",
13+
"@angular/forms": "file:../../dist/packages-dist/forms",
14+
"@angular/http": "file:../../dist/packages-dist/http",
15+
"@angular/platform-browser": "file:../../dist/packages-dist/platform-browser",
16+
"@angular/platform-browser-dynamic": "file:../../dist/packages-dist/platform-browser-dynamic",
17+
"@angular/platform-server": "file:../../dist/packages-dist/platform-server",
18+
"@angular/platform-webworker": "file:../../dist/packages-dist/platform-webworker",
19+
"@angular/platform-webworker-dynamic": "file:../../dist/packages-dist/platform-webworker-dynamic",
20+
"@angular/router": "file:../../dist/packages-dist/router",
21+
"@angular/service-worker": "file:../../dist/packages-dist/service-worker",
22+
"@angular/upgrade": "file:../../dist/packages-dist/upgrade",
23+
"@types/jasmine": "2.5.41",
24+
"rxjs": "file:../../node_modules/rxjs",
25+
"typescript": "3.0.x",
26+
"zone.js": "file:../../node_modules/zone.js"
27+
},
28+
"scripts": {
29+
"test": "tsc"
30+
}
31+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"compilerOptions": {
3+
"emitDecoratorMetadata": true,
4+
"experimentalDecorators": true,
5+
"module": "commonjs",
6+
"moduleResolution": "node",
7+
"outDir": "../../dist/typings_test_ts30/",
8+
"rootDir": ".",
9+
"target": "es5",
10+
"lib": [
11+
"es5",
12+
"dom",
13+
"es2015.collection",
14+
"es2015.iterable",
15+
"es2015.promise"
16+
],
17+
"types": [],
18+
"strictNullChecks": true
19+
},
20+
"files": [
21+
"include-all.ts",
22+
"node_modules/@types/jasmine/index.d.ts"
23+
]
24+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124
"tslint": "5.7.0",
125125
"tslint-eslint-rules": "4.1.1",
126126
"tsutils": "2.20.0",
127-
"typescript": "2.9.x",
127+
"typescript": "~3.0.1",
128128
"uglify-es": "^3.3.9",
129129
"universal-analytics": "0.4.15",
130130
"vlq": "0.2.2",

packages/bazel/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
"peerDependencies": {
1313
"@angular/compiler-cli": "0.0.0-PLACEHOLDER",
14-
"typescript": ">=2.7.2 <2.10"
14+
"typescript": ">=3.0.1 <3.1"
1515
},
1616
"repository": {
1717
"type": "git",

packages/benchpress/test/reporter/console_reporter_spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import {ConsoleReporter, Injector, MeasureValues, SampleDescription} from '../..
1818

1919
function createReporter(
2020
{columnWidth = null, sampleId = null, descriptions = null, metrics = null}: {
21-
columnWidth?: number,
22-
sampleId?: string,
23-
descriptions?: {[key: string]: any}[],
24-
metrics?: {[key: string]: any}
21+
columnWidth?: number | null,
22+
sampleId?: string | null,
23+
descriptions?: {[key: string]: any}[] | null,
24+
metrics?: {[key: string]: any} | null
2525
}) {
2626
log = [];
2727
if (!descriptions) {

packages/common/http/src/xhr.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ export class HttpXhrBackend implements HttpBackend {
314314
}
315315

316316
// Fire the request, and notify the event stream that it was fired.
317-
xhr.send(reqBody);
317+
xhr.send(reqBody !);
318318
observer.next({type: HttpEventType.Sent});
319319

320320
// This is the return from the Observable function, which is the

packages/compiler-cli/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
"source-map": "^0.6.1"
2020
},
2121
"peerDependencies": {
22-
"typescript": ">=2.7.2 <2.10",
23-
"@angular/compiler": "0.0.0-PLACEHOLDER"
22+
"@angular/compiler": "0.0.0-PLACEHOLDER",
23+
"typescript": ">=3.0.1 <3.1"
2424
},
2525
"engines" : {
2626
"node" : ">=8.0"

packages/compiler-cli/src/metadata/collector.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import {Evaluator, errorSymbol, recordMapEntry} from './evaluator';
1212
import {ClassMetadata, ConstructorMetadata, FunctionMetadata, InterfaceMetadata, METADATA_VERSION, MemberMetadata, MetadataEntry, MetadataError, MetadataMap, MetadataSymbolicBinaryExpression, MetadataSymbolicCallExpression, MetadataSymbolicExpression, MetadataSymbolicIfExpression, MetadataSymbolicIndexExpression, MetadataSymbolicPrefixExpression, MetadataSymbolicReferenceExpression, MetadataSymbolicSelectExpression, MetadataSymbolicSpreadExpression, MetadataValue, MethodMetadata, ModuleExportMetadata, ModuleMetadata, isClassMetadata, isConstructorMetadata, isFunctionMetadata, isMetadataError, isMetadataGlobalReferenceExpression, isMetadataImportDefaultReference, isMetadataImportedSymbolReferenceExpression, isMetadataSymbolicExpression, isMetadataSymbolicReferenceExpression, isMetadataSymbolicSelectExpression, isMethodMetadata} from './schema';
1313
import {Symbols} from './symbols';
1414

15-
const isStatic = (node: ts.Node) => ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Static;
15+
const isStatic = (node: ts.Declaration) =>
16+
ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Static;
1617

1718
/**
1819
* A set of collector options to use when collecting metadata.
@@ -277,8 +278,8 @@ export class MetadataCollector {
277278
}
278279
});
279280

280-
const isExport = (node: ts.Node) =>
281-
sourceFile.isDeclarationFile || ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Export;
281+
const isExport = (node: ts.Node) => sourceFile.isDeclarationFile ||
282+
ts.getCombinedModifierFlags(node as ts.Declaration) & ts.ModifierFlags.Export;
282283
const isExportedIdentifier = (identifier?: ts.Identifier) =>
283284
identifier && exportMap.has(identifier.text);
284285
const isExported =

packages/compiler-cli/src/transformers/lower_expressions.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ function isEligibleForLowering(node: ts.Node | undefined): boolean {
224224
return false;
225225
case ts.SyntaxKind.VariableDeclaration:
226226
// Avoid lowering expressions already in an exported variable declaration
227-
return (ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Export) == 0;
227+
return (ts.getCombinedModifierFlags(node as ts.VariableDeclaration) &
228+
ts.ModifierFlags.Export) == 0;
228229
}
229230
return isEligibleForLowering(node.parent);
230231
}
@@ -370,7 +371,7 @@ function createExportTableFor(sourceFile: ts.SourceFile): Set<string> {
370371
case ts.SyntaxKind.ClassDeclaration:
371372
case ts.SyntaxKind.FunctionDeclaration:
372373
case ts.SyntaxKind.InterfaceDeclaration:
373-
if ((ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Export) != 0) {
374+
if ((ts.getCombinedModifierFlags(node as ts.Declaration) & ts.ModifierFlags.Export) != 0) {
374375
const classDeclaration =
375376
node as(ts.ClassDeclaration | ts.FunctionDeclaration | ts.InterfaceDeclaration);
376377
const name = classDeclaration.name;
@@ -385,7 +386,7 @@ function createExportTableFor(sourceFile: ts.SourceFile): Set<string> {
385386
break;
386387
case ts.SyntaxKind.VariableDeclaration:
387388
const variableDeclaration = node as ts.VariableDeclaration;
388-
if ((ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Export) != 0 &&
389+
if ((ts.getCombinedModifierFlags(variableDeclaration) & ts.ModifierFlags.Export) != 0 &&
389390
variableDeclaration.name.kind == ts.SyntaxKind.Identifier) {
390391
const name = variableDeclaration.name as ts.Identifier;
391392
exportTable.add(name.text);

0 commit comments

Comments
 (0)