4 ms·
Non-nullable This is incorrect, as is the announcement. The following is valid. class Bar{} let foo:object = new Bar() foo = null foo = undefined ed
by dsp1234 10y ago
Non-nullable
This is incorrect, as is the announcement. The following is valid.
class Bar{}
let foo:object = new Bar()
foo = null
foo = undefined
edit:
For the people mentioning, --strictNullChecks. That applies to all types not just object. For example, "let x:string = null" would also be an error. That option applies to any type that is not of type Any/null/undefined, and has been in place since 2.0. In that way, "object" is non-nullable under strictNullChecks just as every other type is.
- realharo 10y agoI guess it's only so with `strictNullChecks` enabled? Anyway, TypeScript's `strictNullChecks` in general has a huge hole in that it allows uninitialized properties (https://github.com/Microsoft/TypeScript/issues/8476 https://github.com/Microsoft/TypeScript/issues/8476).
- whatever_dude 10y agoNo, object is not a nullable type. For your code to work, you'd need to run it with strictNullChecks disabled. That's probably what you're doing, since it's the default.
- mohamedhegazy 10y agoWithout `--strictNullChecks`, both `undefined` and `null` are in the domain of all types.
- dsp1234 10y agosince it's the default. It's not the default for the command line compiler. Also, all types (except Any/null/undefined) are non-nullable under that option, so that's not what makes object special (it's the no primitive types that is important). >tsc test.ts >tsc test.ts --strictNullChecks > test.ts(3,1): error TS2322: Type 'null' is not assignable to type 'object'.
- whatever_dude 10y ago> you'd need to run it with strictNullChecks disabled. That's probably what you're doing, since it's the default I think you misinterpreted my reply. I meant the default is off. That's what your code shows.
- dsp1234 10y agoI did, sorry about that.
- benjaminjackman 10y agoI think you can use the `--strictNullChecks`[1] compiler option to get that behavior though. 1: https://www.typescriptlang.org/docs/handbook/compiler-options.html https://www.typescriptlang.org/docs/handbook/compiler-option...
- DanRosenwasser 10y agoThanks for catching - I've updated the blog post. I tend to just use `strictNullChecks` by default, as it's typically the best option for any new code. :)