Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update documentation to mention that --strictNullChecks flag is necessary for --strictPropertyInitialization to have an effect #23659

Closed
loicraux opened this issue Apr 24, 2018 · 3 comments
Assignees
Labels
Bug A bug in TypeScript Docs The issue relates to how you learn TypeScript Fixed A PR has been merged for this issue Good First Issue Well scoped, documented and has the green light Help Wanted You can do this

Comments

@loicraux
Copy link

TypeScript Version:
2.7.0 and above.

Search Terms:
strictNullChecks strictPropertyInitialization

Code

class C {
    foo: number;
    bar = "hello";
    baz: boolean;

    constructor() {
        this.foo = 42;
    }
}

Expected behavior:
TS documentation should mention that --strictNullChecks flag is needed for --strictPropertyInitialization one to actually have an effect.
This would properly document the actual code change in this commit :
image
This was clearly mentionned in the corresponding PR description.
Also @mihailik suggested that a warning could also be emitted. Has this been done?

Actual behavior:
This is mentioned nowhere in the documentation.
Documentation for --strictPropertyInitialization is Ensure non-undefined class properties are initialized in the constructor..
To determine if a class property is non-undefined, --strictNullChecks flag must be turned on.

Playground Link:
http://www.typescriptlang.org/play/#src=class%20C%20%7B%0D%0A%20%20%20%20foo%3A%20number%3B%0D%0A%20%20%20%20bar%20%3D%20%22hello%22%3B%0D%0A%20%20%20%20baz%3A%20boolean%20%7C%20undefined%3B%0D%0A%0D%0A%20%20%20%20constructor()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.foo%20%3D%2042%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Aconst%20foo%3A%20string%20%3D%20%22fdsf%22%3B

Related Issues:
I found no existing issue for updating the documentation about this.

@loicraux loicraux changed the title Update documentation to mention that --strictNullChecks is necessary for --strictPropertyInitialization to have an effect Update documentation to mention that --strictNullChecks flag is necessary for --strictPropertyInitialization to have an effect Apr 24, 2018
@mhegazy
Copy link
Contributor

mhegazy commented Apr 24, 2018

A PR to warn for use of --strictPropertyInitialization with no --strictNullChecks would be welcomed. The fix should be added in 'verifyCompilerOptions'.

@mhegazy
Copy link
Contributor

mhegazy commented Apr 24, 2018

Also a PR to update the docs would be welcomed, the handbook is at https://github.com/Microsoft/TypeScript-Handbook

@mhegazy mhegazy added Help Wanted You can do this Good First Issue Well scoped, documented and has the green light Bug A bug in TypeScript Docs The issue relates to how you learn TypeScript labels Apr 24, 2018
@mhegazy mhegazy added this to the Community milestone Apr 24, 2018
@a-tarasyuk
Copy link
Contributor

A PR to warn for use of --strictPropertyInitialization with no --strictNullChecks would be welcomed

@mhegazy I'll make PR for that case.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug A bug in TypeScript Docs The issue relates to how you learn TypeScript Fixed A PR has been merged for this issue Good First Issue Well scoped, documented and has the green light Help Wanted You can do this
Projects
None yet
Development

No branches or pull requests

3 participants