In JavaScript, it's commonly seen as best practice to use === instead of ==, for obvious and well-known reasons. In TypeScript, which is one to be preferred? Is there even one which is preferable ...
Yes. As of TypeScript 3.7 (released on November 5, 2019), this feature is supported and is called Optional Chaining: At its core, optional chaining lets us write code where TypeScript can immediately stop running some expressions if we run into a null or undefined. The star of the show in optional chaining is the new ?. operator for optional property accesses. Refer to the TypeScript 3.7 ...
It tells TypeScript to leave the expressions result as it is and pass it to JavaScript. It allows the use of JavaScript semantics in TypeScript, such as using loose equality (with the convenience of omitting all the checks) or using the (loose) inequality comparisons.
export function foo(arg: string): arg is MyType { return ... } I haven't been able to search for is in either the docs or google, it's a pretty common word and shows up on basically every page. What does the keyword do in that context?
When creating or maintaining TypeScript definitions for pure JavaScript modules, interfaces should probably be used for everything that is a class in the original module; particularly examples like chai, where the modules are designed to be extended through plug-ins.
The syntax of TypeScript is such that some expressions and statements refer to values that exist at runtime, while other expressions and statements refer to types that exist only at design/compile time.
None of the other answers discuss how to run a TypeScript script that uses modules, and especially modern ES Modules. First off, ts-node doesn't work in that scenario, as of March 2020. So we'll settle for tsc followed by node. Second, TypeScript still can't output .mjs files. So we'll settle for .js files and "type": "module" in package.json.
10 Type guards in typescript To determine the type of a variable after a conditional statement you can use type guards. A type guard in typescript is the following: An expression which allows you to narrow down the type of something within a conditional block.