Hej mam pewien problem z dokumentacją typeScript - otóż na stronie ten kod jest opisany iż powinien nie zwracać błędów jednak je zwraca, mówię poniżej, sam bym się zdziwił ale juz nie wiem co jest poprawne.
Chodzi o typ "any" -> i to że można wywołać na nim nieistniejące funkcje tutaj foo() np.
let obj: any = { x: 0 };
// None of the following lines of code will throw compiler errors.
// Using `any` disables all further type checking, and it is assumed
// you know the environment better than TypeScript.
obj.foo(); // to sie jednak nie wykonuje tzn. leci błąd
obj(); // leci błąd tak samo.
obj.bar = 100;
obj = "hello";
const n: number = obj;
dalej mam problem ze zrozumieniem tego fragmentu kodu :
Pierwsza to funkcja
function sayName({ first, last = 'Smith' }: {first: string; last?: string }): void {
const name = first + ' ' + last;
console.log(name);
dokładnie nie rozumiem tego ({ first, last = 'Smith' }: {first: string; last?: string })
co tutaj robi operator ":" dwukorpka? rozumiem wartość default Smith jeśli last nie zostanie podana ale nie bardzo całą formułę, zapisu - jeśli wiecie gdzie to też może być dobrze wyjasnione to po proszę
function f(obj: { X: number }) {
return obj.X;
}
// jaki tutaj typ jest przyjmowany?
rozumiem że { X: number} to jest typ obiektu obj, który jest obiektem z kluczem x - typu number? Czy jak?
bo równie dobrze, dlaczego skoro podawany do funkcji były typ enum nie mozna po prostu go okreslic?
function f(obj: E) {
return obj.X;
} // tak rozumiem nie mozna bo
nie można tak, bo kompilator mimo iż metodą JIT to w procesie kompilacji nie wie co to za typ? Bo enum jest definiowany przez nas
Dziękuje za informacje