TypeScript-Handbook icon indicating copy to clipboard operation
TypeScript-Handbook copied to clipboard

Example doesn't work

Open sv158 opened this issue 5 years ago • 2 comments

https://github.com/microsoft/TypeScript-Handbook/blame/master/pages/Advanced%20Types.md#L500

type LinkedList<T> = T & { next: LinkedList<T> };

interface Person {
    name: string;
}

var people: LinkedList<Person>;
var s = people.name;  
var s = people.next.name;
var s = people.next.next.name;
var s = people.next.next.next.name;

Variable 'people' is used before being assigned.

sv158 avatar Dec 03 '19 02:12 sv158

Looks legit, want to submit a PR making that declare var people?

orta avatar Dec 03 '19 19:12 orta

@orta while using declare var, the js code generated is different.

There is also a similar problem at https://github.com/microsoft/TypeScript-Handbook/blame/master/pages/Type%20Compatibility.md#L221

interface Empty<T> {
}
let x: Empty<number>;
let y: Empty<string>;
x = y;  // variable 'y' is used before being assigned.

and https://github.com/microsoft/TypeScript-Handbook/blame/master/pages/Type%20Compatibility.md#L200

class Animal {
    feet: number;
    constructor(name: string, numFeet: number) { }
}
class Size {
    feet: number;
    constructor(numFeet: number) { }
}
let a: Animal;
let s: Size;
a = s;  // variable 's' is used before being assigned.
s = a;

sv158 avatar Dec 04 '19 10:12 sv158