LINUX.ORG.RU

История изменений

Исправление anon1984, (текущая версия) :

Пока делал бутерброд, придумал такой костылик:

type Optional<T> = T|void;

function notNothing<T>(v: any): v is T {
    return (v !== undefined);
}

let nullableString: Optional<String> = 'fufufu';

if (notNothing<String>(nullableString)) 
	console.log(nullableString.length); //ok

console.log(nullableString.length); //error, property length does not exist on type String|void

Исходная версия anon1984, :

Пока делал бутерброд, придумал такой костылик:

type Optional<T> = T|void;

function notNoting<T>(v: any): v is T {
    return (v !== undefined);
}

let nullableString: Optional<String> = 'fufufu';

if (notNoting<String>(nullableString)) 
	console.log(nullableString.length); //ok

console.log(nullableString.length); //error, property length does not exist on type String|void