diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 75cdd07845f2c..8738e4374cc3a 100755 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2062,6 +2062,10 @@ namespace ts { } function verifyCompilerOptions() { + if (options.strictPropertyInitialization && !options.strictNullChecks) { + createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"); + } + if (options.isolatedModules) { if (options.declaration) { createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"); diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt new file mode 100644 index 0000000000000..8ce2ddcaaa323 --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt @@ -0,0 +1,7 @@ +error TS5052: Option 'strictPropertyInitialization' cannot be specified without specifying option 'strictNullChecks'. + + +!!! error TS5052: Option 'strictPropertyInitialization' cannot be specified without specifying option 'strictNullChecks'. +==== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts (0 errors) ==== + var x; + \ No newline at end of file diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js new file mode 100644 index 0000000000000..fc564c722dabb --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js @@ -0,0 +1,6 @@ +//// [optionsStrictPropertyInitializationStrictNullChecks.ts] +var x; + + +//// [optionsStrictPropertyInitializationStrictNullChecks.js] +var x; diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols new file mode 100644 index 0000000000000..7482215b8227c --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts === +var x; +>x : Symbol(x, Decl(optionsStrictPropertyInitializationStrictNullChecks.ts, 0, 3)) + diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types new file mode 100644 index 0000000000000..f59278f8382b4 --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types @@ -0,0 +1,4 @@ +=== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts === +var x; +>x : any + diff --git a/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts b/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts new file mode 100644 index 0000000000000..53afb64ccd4a4 --- /dev/null +++ b/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts @@ -0,0 +1,3 @@ +// @strictPropertyInitialization: true + +var x;