TypeScript w wielu sytuacjach jest w stanie wywnioskować typ i na tej podstawie sprawdzać poprawność jego poprawność.
Przypisanie wartości prostej
Dla następującego przypisania, TypeScript sam jest w stanie wywnioskować typ:
let name = 'John';TypeScript wie, że zmienna name jest typu string. Co powoduje, że nie jest możliwe późniejsze przypisanie do tej zmiennej wartości innego typu:
let name = 123; //to nie zadzialaNiepoprawna praktyka
Z racji, że TypeScript jest w stanie sam wywnioskować typ w tak prostych sytuacjach, niepoprawną praktyką będzie przypisywanie typu w takich sytuacjach:
let name: string = 'John'; //nadmiarowe dopisywanie typuPrzypisanie obiektu
Podobnie jak w przypadku przypisywania typów prostych, TypeScript jest w stanie wywnioskować i „bronić” typu przypisanego obiektu. Przykładowo dla:
let person = {
name: 'John',
age: 45
}Nie będzie możliwe przypisanie lub pobranie innych pól niż wyżej przypisane:
person.surname = 'Legend'; //błąd
console.log(person.sex); //błądObie linijki spowodują błąd kompilacji (a dokładnie rzecz ujmując transpilacji).
Dodawanie elementów do tablicy
TypeScript także wspiera wnioskowanie typów w tablicach – jeśli stworzymy tablicę zawierającą elementy jednego typu, to później nie będzie możliwe dodanie elementu innego typu.
let grades = [3,4,1,2,5,3];
grades.push('John'); // to nie zadziała