Niepoprawny partial import

0

Generalnie problemem jest undefined z zmiennej w importowanym partialu.

Generalnie to nie mój kod, ale ktoś sobie tu zaimportował partiala:

import { DocPersondata } from './partials/doc-person-data'

później sobie w konstruktorze go wrzuca

constructor(
  public docPersonData: DocPersonData
) {

i ostatecznie w representingPerson leci undefined

if (this.docPersonData.representingPerson !

to się tak robi? Bo ogólnie jak sobie klikam na tym partialu i wrzucilem to w console.log() to jest tam obiekt z danymi.

1

typescript - undefined w zmiennej - co źle?

Odnosząc się najpierw do samego tytułu to złe jest wstawianie kodu w formie zdjęcia, zwłaszcza w tak dziwny sposób...


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export

W pliku "doc-person-data" powinieneś najpierw wyeksportować wartość, którą chcesz udostępnić

class DocPersonData {
  name = "Franek";
  age = 30;

  // ...
}

export { DocPersonData }

I teraz w drugim pliku możesz ją zaimportować

import { DocPersonData } from './partials/doc-person-data';

const data = new DocPersonData();

console.dir(data.name); // franek
console.dir(data.age); // 30
2

co to jest "partial import"? Z tego, co wiem, to nie ma czegoś takiego w JavaScript, więc to chyba jakiś wewnątrzprojektowy slang?
Czy może chodzi o Partial z TypeScript?
https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype

import { DocPersondata } from './partials/doc-person-data'
//...
constructor(
  public docPersonData: DocPersonData
) 

po tym użyciu wnioskuję, że DocPersonData to jakiś typ w TypeScript.

if (this.docPersonData.representingPerson !

O co chodzi z tym wykrzyknikiem? Nie spotkałem się z taką notacją.
Aa. To pewnie null-assertion operator z TypeScript?
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html#non-null-assertion-operator

Ale w takim razie tutaj wydaje się być niepotrzebny, skoro i tak w ifie sprawdzasz, czy coś jest prawdziwe. O ile jest to na zasadzie:

if (foo) {
   // TS wie, że foo nie jest undefined ani null
}

Bo nie pokazałeś całego ifa i kontekstu.

to się tak robi? Bo ogólnie jak sobie klikam na tym partialu i wrzucilem to w console.log() to jest tam obiekt z danymi.

gdzie jest obiekt z danymi? W this.docPersonData.representingPerson czy tylko this.docPersonData, ale this.docPersonData.representingPerson jest już undefined?

1 użytkowników online, w tym zalogowanych: 0, gości: 1