Closed
Description
TypeScript Version: 2.1.1 and nightly (2.2.0-dev.20161202)
Code
// A *self-contained* demonstration of the problem follows...
let node: {
props: any;
};
const { props: { className = '' } = {} } = node;
if (className) {
node.props.className = className.slice(0, 1); // error TS2339: Property 'slice' does not exist on type 'never'.
}
Expected behavior:
Code compiles without error as in TS 2.0.10
Actual behavior:
Error as commented.
Might be duplicate/related to #10065 and its linked issues somehow, but I'm not sure. Strict nullchecks is not enabled.
The following workarounds fix the error:
- Change const to let
- Use
if typeof className === 'string'
instead ofif (className)
- Take out the default values from the destructuring pattern